Творческое объединение Dream Art Creative
Разработка и поддержка сайтов любой сложности
+7 (916) 808-75-65
Задать вопрос
Войти
  • Корзина0
  • Избранные товары0
  • Сравнение товаров0
Ваш город
Москва
info@dreamarts.ru
  • Telegram
  • WhatsApp
Творческое объединение Dream Art Creative
Разработка и поддержка сайтов любой сложности
Ваш город
Москва
+7 (916) 808-75-65
Войти
Сравнение0
Избранные товары 0
Корзина 0
Компания
  • О компании
  • Лицензии и сертификаты
  • Отзывы
  • Наши клиенты
  • Вопрос-ответ
  • Акции
  • Контакты
Услуги
  • Разработка сайтов
  • Обслуживание и развитие сайта
  • Реклама и продвижение
  • Аренда сайтов
Купить
  • Готовые сайты
    Готовые сайты
  • 1С-Битрикс: Управление сайтом
    1С-Битрикс: Управление сайтом
Блог-note
Проекты
  • Веб-сайты
  • Графическая реклама
Контакты
+  ЕЩЕ
    Творческое объединение Dream Art Creative
    Сравнение0
    Избранные товары 0
    Корзина 0
    Творческое объединение Dream Art Creative
    Телефоны
    +7 (916) 808-75-65
    • Москва
      • Назад

    Автоматическая загрузка изображений и ссылок в Excel через VBA

    Главная
    —
    Блог-note
    —Автоматическая загрузка изображений и ссылок в Excel через VBA
    22 мая 2026 0:00
    Автоматическая загрузка изображений и ссылок в Excel через VBA

    Автоматическая загрузка изображений и ссылок в Excel через VBA

    В этой статье разберём, как автоматизировать заполнение прайс-листа в Microsoft Excel с помощью VBA:

    • загружать изображения по URL;
    • вставлять картинки в ячейки;
    • автоматически подгонять размер;
    • добавлять гиперссылки к названиям товаров;
    • сохранять изображения внутри файла Excel для работы без интернета.

    В итоге получится аккуратный каталог товаров прямо внутри Excel.

    В этой статье разберём, как автоматизировать заполнение прайс-листа в Microsoft Excel с помощью VBA:

    • загружать изображения по URL;
    • вставлять картинки в ячейки;
    • автоматически подгонять размер;
    • добавлять гиперссылки к названиям товаров;
    • сохранять изображения внутри файла Excel для работы без интернета.

    В итоге получится аккуратный каталог товаров прямо внутри Excel.

    Что делает скрипт

    Скрипт выполняет следующие действия:

    Столбец Содержимое
    B Название товара
    E URL изображения
    F URL страницы товара

    После запуска:

    • картинка вставляется в столбец D
    • название в столбце B становится кликабельной ссылкой
    • изображения автоматически масштабируются до 50×50
    • картинки сохраняются внутри файла Excel

    Подготовка Excel

    1. Открыть редактор VBA

    Нажмите:

    ALT + F11

    2. Создать модуль

    В меню:

    Insert → Module

    3. Вставить код

    В открывшееся окно вставьте VBA-скрипт.

    Sub InsertImages_And_Hyperlinks()
        Dim ws As Worksheet
        Dim lastRow As Long
        Dim i As Long
        Dim imageUrl As String
        Dim linkUrl As String
        Dim filePath As String
        Dim http As Object
        Dim stream As Object
        Dim pic As Shape
        Dim shp As Shape
        Dim boxSize As Double
        boxSize = 50
        Set ws = ActiveSheet
        ' ? ускорение Excel
        With Application
            .ScreenUpdating = False
            .Calculation = xlCalculationManual
            .EnableEvents = False
        End With
        ' ? удаляем старые картинки в колонке D
        For Each shp In ws.Shapes
            If Not Intersect(shp.TopLeftCell, ws.Columns("D")) Is Nothing Then
                shp.Delete
            End If
        Next shp
        ' Последняя строка
        lastRow = ws.Cells(ws.Rows.Count, "E").End(xlUp).Row
        ' Размер колонки D
        ws.Columns("D").ColumnWidth = 8
        For i = 2 To lastRow
            ' =========================
            ' ? КАРТИНКА
            ' =========================
            imageUrl = Trim(ws.Cells(i, "E").Value)
            If imageUrl <> "" Then
                filePath = Environ("TEMP") & "\img_" & i & ".jpg"
                On Error Resume Next
                ' загрузка картинки
                Set http = CreateObject("MSXML2.XMLHTTP.6.0")
                http.Open "GET", imageUrl, False
                http.Send
                If http.Status = 200 Then
                    ' сохранение временного файла
                    Set stream = CreateObject("ADODB.Stream")
                    stream.Type = 1
                    stream.Open
                    stream.Write http.ResponseBody
                    stream.SaveToFile filePath, 2
                    stream.Close
                    ' вставка картинки
                    Set pic = ws.Shapes.AddPicture( _
                        Filename:=filePath, _
                        LinkToFile:=False, _
                        SaveWithDocument:=True, _
                        Left:=ws.Cells(i, "D").Left, _
                        Top:=ws.Cells(i, "D").Top, _
                        Width:=-1, _
                        Height:=-1)
                    With pic
                        .LockAspectRatio = msoTrue
                        .Placement = 1
                        ' размер строки
                        ws.Rows(i).RowHeight = boxSize
                        ' вписывание в 50x50
                        If .Width > .Height Then
                            .Width = boxSize
                        Else
                            .Height = boxSize
                        End If
                        ' центрирование
                        .Left = ws.Cells(i, "D").Left + (ws.Cells(i, "D").Width - .Width) / 2
                        .Top = ws.Cells(i, "D").Top + (ws.Cells(i, "D").Height - .Height) / 2
                    End With
                    ' удаление временного файла
                    Kill filePath
                End If
                On Error GoTo 0
            End If
            ' =========================
            ' ? ССЫЛКА НА ТОВАР
            ' =========================
            linkUrl = Trim(ws.Cells(i, "F").Value)
            If linkUrl <> "" Then
                On Error Resume Next
                ws.Cells(i, "B").Hyperlinks.Delete
                On Error GoTo 0
                ws.Hyperlinks.Add _
                    Anchor:=ws.Cells(i, "B"), _
                    Address:=linkUrl, _
                    TextToDisplay:=ws.Cells(i, "B").Value
            End If
        Next i
        ' возврат Excel
        With Application
            .ScreenUpdating = True
            .Calculation = xlCalculationAutomatic
            .EnableEvents = True
        End With
        MsgBox "Готово!"
    End Sub
    

    Как работает скрипт

    1. Загрузка изображения

    Set http = CreateObject("MSXML2.XMLHTTP.6.0")
    http.Open "GET", imageUrl, False
    http.Send

    Этот блок выполняет HTTP-запрос и скачивает изображение по URL.


    2. Сохранение файла

    Set stream = CreateObject("ADODB.Stream")
    stream.Type = 1
    stream.Open
    stream.Write http.ResponseBody

    Изображение сохраняется во временный файл.


    3. Вставка картинки в Excel

    Set pic = ws.Shapes.AddPicture(...)

    Картинка вставляется как объект Shape.

    Ключевые параметры:

    Параметр Значение
    LinkToFile False
    SaveWithDocument True

    Это означает:

    • изображение встраивается в Excel
    • файл работает без интернета

    4. Масштабирование изображения

    If .Width > .Height Then
        .Width = boxSize
    Else
        .Height = boxSize
    End If

    Изображение автоматически вписывается в квадрат 50×50 без искажений.


    5. Создание гиперссылки

    ws.Hyperlinks.Add _
        Anchor:=ws.Cells(i, "B"), _
        Address:=linkUrl

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


    Как запускать скрипт

    В Excel:

    ALT + F8

    Выберите:

    InsertImages_And_Hyperlinks

    Нажмите:

    Run

    Возможные ошибки

    Картинки не вставляются

    Проверьте:

    • URL должен вести напрямую на JPG/PNG
    • сайт не должен блокировать загрузку
    • интернет должен быть доступен

    Макросы отключены

    Включите:

    Файл → Параметры → Центр управления безопасностью → Макросы

    Как улучшить скрипт

    Можно дополнительно реализовать:

    • обрезку изображений в квадрат;
    • сжатие картинок;
    • кнопку «Обновить каталог»;
    • ускоренную загрузку для 10 000+ товаров;
    • автоматическое обновление по расписанию.

    Итог

    После внедрения этого VBA-скрипта Excel превращается в полноценный товарный каталог:

    • изображения загружаются автоматически;
    • ссылки создаются автоматически;
    • всё хранится внутри файла;
    • прайс можно отправлять другим людям без потери картинок.

    Это отличный способ автоматизировать каталоги, прайсы и товарные таблицы без стороннего ПО.

    Фотогалерея
    2 фото —
    1/2 фото —
    Автоматическая загрузка изображений и ссылок в Excel через VBA
    Автоматическая загрузка изображений и ссылок в Excel через VBA
    Автоматическая загрузка изображений и ссылок в Excel через VBA
    Автоматическая загрузка изображений и ссылок в Excel через VBA
    Теги
    Excel Excel и VBA
    Назад к списку
    • Услуги
    • Разработка сайтов
    • Готовые сайты на базе 1С-Битрикс
    • Обслуживание и развитие сайта
    • Доработка существующего сайта
    • Реклама и продвижение
    • Все статьи
    • Администрирование 2
    • VBA и Excel 1
    • Инструкции и заметки по 1С-Битрикс 2
    • Новости 1
    Теги
    1c bitrix 1c-битрикс ams bitrix bash bitrix CMS cms bitrix Excel Excel и VBA linux shell ssh unix администрирование администрирование битрикс база данных utf-8 безопасность битрикс utf-8 битрикс windows-1251 битрикс24 изменить кодировку сайта на битриксе инфоблоки битрикс команда linux команды компоненты битрикс консоль кракозябры битрикс моду настройка SITE_CHARSET настройка битрикс обучение unix операционная система перевод сайта в utf-8 перенос сайта 1с-битрикс помощь Популярные CMS 2024 работа в командной строке разработка на битрикс резервное руководство сайт на битрикс сервер система скрипты смена кодировки битрикс смена кодировки шаблонов битрикс создание сайтов битрикс терминал управление сервером установка битрикс шаблон битрикс
    Блог-note
    19 декабря 2025
    Исследование популярности CMS за 2024 год
    8 апреля 2016
    Список команд для UNIX серверов
    2 ноября 2015
    1C-Bitrix: site under construction – изменяем шаблон
    Блог-note
    Купить
    Услуги
    Разработка сайтов
    Готовые сайты на базе 1С-Битрикс
    Обслуживание и развитие сайта
    Доработка существующего сайта
    Реклама и продвижение
    Компания
    О компании
    Лицензии и сертификаты
    Отзывы
    Наши клиенты
    Вопрос-ответ
    Акции
    Контакты
    Помощь
    Вопрос-ответ
    +7 (916) 808-75-65
    info@dreamarts.ru
    • Telegram
    • WhatsApp
    2001 - 2026 © «ТО web-разработчиков Dream Art Creative (DreamArts.ru)»