Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.09.2019, 15:27   #1
Iskin
Форумчанин
 
Регистрация: 22.09.2008
Сообщений: 307
По умолчанию импорт картинки из внешней папки

Нашел код в инете, который по пути указанных в ячейках B1:B5 вставляет/заливает в A1:A5 картинки в виде примечания. И все как-то сложно и куча ошибок, то размер не тот, то еще чего-то не хватает. Как можно упростить код, сделать его более универсальным. Чтобы если нет фото, то и примечание не создавать. В целом задумка же не плохая, многим бы пригодилась
Код:
Sub InsertPicturesInComments()
 
    Dim rngPics As Range, rngOut As Range
    Dim i As Long, p As String, w As Long, h As Long
     
    Set rngPics = Range("B1:B5")    'диапазон путей к картинкам
    Set rngOut = Range("A1:A5")     'диапазон вывода примечаний
     
    rngOut.ClearComments        'удаляем старые примечания
     
    'проходим в цикле по ячейкам
    For i = 1 To rngPics.Cells.Count
     
        p = rngPics.Cells(i, 1).Value       'считываем путь к файлу картинки
        w = LoadPicture(p).Width            'и ее размеры
        h = LoadPicture(p).Height
         
        With rngOut.Cells(i, 1)
            .AddComment.Text Text:=""       'создаем примечание без текста
            .Comment.Visible = True
            .Comment.Shape.Select True
        End With
        With rngOut.Cells(i, 1).Comment.Shape   'заливаем картинкой
            .Fill.UserPicture p
            .ScaleWidth 1, msoFalse, msoScaleFromTopLeft
            .ScaleHeight h / w * 1.8, msoFalse, msoScaleFromTopLeft     'корректируем размеры
        End With
    Next i
End Sub
в частности ругается на
Код:
 .Fill.UserPicture p
указанное значение выходит за допустимые пределы
Думайте глобально - действуйте локально!

Последний раз редактировалось Iskin; 30.09.2019 в 15:40.
Iskin вне форума Ответить с цитированием
Старый 30.09.2019, 15:42   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Код взяли тут - https://www.planetaexcel.ru/techniques/9/128/ ?

Можете доработать под себя, как Вам надо.

Но зачем, есть же платное решение - надстройка PastePictures
Serge_Bliznykov вне форума Ответить с цитированием
Старый 30.09.2019, 16:05   #3
Iskin
Форумчанин
 
Регистрация: 22.09.2008
Сообщений: 307
По умолчанию

Оно. Но в целом не особо помогло. Там люди тоже спрашивают что делать с размерами
Код:
w = LoadPicture(p).Width
h = LoadPicture(p).Height
, а ответов нет
Думайте глобально - действуйте локально!
Iskin вне форума Ответить с цитированием
Старый 30.09.2019, 16:49   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Iskin Посмотреть сообщение
а ответов нет
так в статье же написано:
Цитата:
P.S.
Вставленные в примечания картинки и фотографии будут неизбежно утяжелять файл. При большом количестве изображений имеет смысл их заранее обработать (сжать до нужных размеров, оптимизировать цветовую гамму и разрешение) с помощью специальных программ.
Отобразить или скрыть сразу все примечания можно на вкладке Рецензирование - Показать все примечания (Review - Show all comments).
Удалить все примечания из выделенных ячеек можно на вкладке Главная - Очистить - Примечания (Home - Clear - Comments).
Serge_Bliznykov вне форума Ответить с цитированием
Старый 01.10.2019, 07:16   #5
Iskin
Форумчанин
 
Регистрация: 22.09.2008
Сообщений: 307
По умолчанию

В общем, не тот случай. Действительно утяжеляет файл и только. Наверное рациональнее сделать ссылку на папку, где лежит этот графический файл
Думайте глобально - действуйте локально!
Iskin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как подключиться к внешней БД? Embarcadirov Общие вопросы Delphi 3 21.10.2017 00:02
Импорт картинок из папки в текст WORD 2007 макросом hlibhlib Microsoft Office Word 8 18.02.2014 19:54
Как открыть шаблон Word-a из папки в корневой папки программы :) flouwjke Общие вопросы Delphi 3 30.04.2012 00:25
Работа с внешней dll Jrcfyf C# (си шарп) 6 20.01.2012 18:07
Связывание с внешней БД voam Microsoft Office Access 11 30.12.2009 18:25