Как вставить картинку по ссылке из интернета в Excel

Счастливые обладатели лицензий MS Office 365, свежих коробок 2024 и обновленных 2021 наверное уже в курсе, что не так давно, в начале 2023 года, в Excel появилась новая функция ИЗОБРАЖЕНИЕ (IMAGE), с помощью которой теперь можно вставлять картинки по ссылке из интернета прямо в ячейку.

=ИЗОБРАЖЕНИЕ(источник; [замещающий_текст]; [размер]; [высота]; [ширина])

Функция ИЗОБРАЖЕНИЕ использует следующие аргументы:

источник      Путь в виде URL-адреса с использованием протокола HTTPS к файлу изображения. Обязательно. Поддерживаемые форматы файлов: BMP, JPG/JPEG, GIF, TIFF, PNG, ICO, а также WEBP (WEBP не поддерживается в Интернете и Android).

замещающий текст      Замещающий текст, описывающий изображение для специальных возможностей. Необязательный параметр.

размер      Указывает размеры изображения. Необязательный параметр. Существует несколько возможных значений:

  • 0      Вписать изображение в ячейку и сохранить пропорции.

  • 1      Заполнить ячейку изображением и игнорировать пропорции.

  • 2      Сохранить исходный размер изображения, который может превосходить границы ячейки.

  • 3      Настроить размер изображения с использованием аргументов высоты и ширины.

высота       Настраиваемая высота изображения в пикселях. Необязательный параметр.

ширина        Настраиваемая ширина изображения в пикселях. Необязательный параметр.

(если указан только один из аргументов высоты/ширины, пропорции изображения будут сохранены в соответствии с указанным аргументом).

Подробнее в справке Microsoft

Но как быть тем, кто пользуется старым версиями Excel?

Одно из решений — небольшой макрос, который вставит по ссылке из ячейки одно или сразу много изображений на лист Excel.  При этом, в отличии от функции ИЗОБРАЖЕНИЕ, рисунки размещаются не внутри ячеек, а на отдельном слое листа Excel, как это обычно бывает с картинками.

Макрос вставки в Excel картинок по ссылкам из интернета или локального диска

В этом примере макрос вставит на лист Excel картинки по ссылкам из интернета или локального диска.

При запуске он спросит вас желаемую высоту картинок в пикс. для всех предварительно выделенных ячеек со ссылками. Т.е. сначала выделяем мышью одну или несколько ячеек с URL или локальными адресами картинок (например, D:\Downloads\Пример.jpg), затем запускаем макрос и отвечаем на вопрос, сколько рисовать высоту картинок в пикс. 

				
					Sub InPict()
    Dim pic As Shape
    Dim cell As Range, imageCell As Range
    Dim targetHeightPx As Integer
    Dim pointsPerPixel As Double
    
    ' Вызываем окно диалога и устанавливаем желаемую высоту картинок в пикселях
    targetHeightPx = InputBox("Ведите высоту в пикселях", "Размеры картинки", 400)
    
    ' Коэффициент перевода
    pointsPerPixel = 72 / 96 ' 0.75 пунктов на пиксель
    
    ' цикл по выделенным непустым ячейкам
    For Each cell In Selection
        If Not IsEmpty(cell) Then
            Set imageCell = cell.Offset(0, 1) ' адрес ячейки для вставки картинки, т.е. верхний левый угол картинки - в яч. справа в той же строке
        
            'вставляем картинку
            Set pic = ActiveSheet.Shapes.AddPicture(cell.Value, False, True, imageCell.Left, imageCell.Top, -1, -1)
                
            pic.LockAspectRatio = True ' сохраняем пропорции картинки
            pic.Height = targetHeightPx * pointsPerPixel ' присваиваем высоту картинки
        End If
    Next cell

End Sub



				
			

В коде можно:

  • изменить относительный адрес вывода картинки (строка 16), здесь Set imageCell = cell.Offset(0, 1) — это сдвиг ячейки с картинкой на 0 строк и на 1 столбец вправо относительно яч. со ссылкой;
  • заменить везде Height на Width, тогда в диалоговом окне будет задаваться не высота, а ширина;
  • сначала заменить стр. 22 на pic.Height = imageCell.Height ,  а затем удалить диалоговое окно — строки с 7 по 11, тогда высота каждой картинки будет равна высоте соответствующей ячейки со ссылкой;

и т.д.

Если что, напомним как добавить макрос и заставить его работать:

1) В Excel, Word, PP и т.д., нажать Alt + F11, или кнопку Visual Basic на вкладке Разработчик. В меню редактора VBA вставить новый модуль Insert — Module

 и вставить в окошко редактора расположенный выше код, далее можно сохранить код, нажав
 Ctrl + S и закрыть окно VBA (Alt + F4);

2) Нажать Alt + F8, выбрать макрос и нажать кнопку Выполнить.

Полученный файл можно сохранить как обычный xlsx. При этом если вы задали размер всех картинок, например, в 150 пикс., то картинки и сохранятся в таком разрешении и с небольшим весом файла, независимо от размеров исходников.

Telegram
VK
Email
Прокрутить вверх