Картинка эксель

Создание рисунка из ячеек, диаграммы или объекта в Excel

При необходимости вы можете скопировать данные листа, диаграммы или объекты и вставить их в виде статического рисунка в любое место в лист или диаграмму. Вы также можете вставлять данные, скопированные из другой программы, и вставлять их как рисунки в Microsoft Office Excel.

Копирование данных в виде рисунка в Excel

Выделите ячейки или щелкните диаграмму или объект, которые нужно скопировать как рисунок.

На вкладке Главная в группе буфер обмена щелкните стрелку рядом с кнопкой Копироватьи выберите команду Копировать как рисунок.

копировать > копировать как рисунок.” />

В диалоговом окне Копирование рисунка выполните указанные ниже действия.

В разделе внешний видвыберите нужный вариант.

В разделе Форматвыберите нужный параметр.

Чтобы получить наилучшее качество изображения, убедитесь, что выбран параметр как на экране, так и в параметрах рисунка . Тем не менее, чтобы сохранить качество изображения, элементы, которые вы копируете с помощью функции ” как на экране ” и параметры рисунка , всегда будут вставлены в 100% от исходного размера. Например, если вы масштабируете лист по адресу 75%, скопированный элемент из него может быть больше, так как он будет вставлен с фактическим размером.

Если вы выберете диапазон ячеек, но не хотите, чтобы линии сетки отображались при вставке, сначала перейдите в окно > Показать > снимите флажок линии сетки .

Нажмите кнопку ОК.

На листе или другом документе щелкните в том месте, куда вы хотите вставить рисунок.

На вкладке Главная в группе буфер обмена нажмите кнопку Вставитьили нажмите клавиши CTRL + V.

При необходимости вы можете изменить это изображение, если это необходимо. Дополнительные сведения можно найти в разделе ” Формат рисунков ” на вкладке ” Вставка рисунков”.

Копирование данных из другой программы и ее Вставка в формат Excel

В другой программе, например в Word, скопируйте в Excel данные, которые нужно вставить как рисунок, с помощью команды ” Копировать ” этой программы.

В Excel щелкните в любом месте листа или диаграммы, куда вы хотите вставить скопированные данные как рисунок.

На вкладке Главная в группе буфер обмена щелкните стрелку под кнопкой Вставитьи выберите команду Специальная Вставка.

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

На вкладке Формат внесите необходимые изменения.

При необходимости вы можете изменить это изображение, если это необходимо. Дополнительные сведения можно найти в разделе ” Формат рисунков ” на вкладке ” Вставка рисунков”.

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community, попросить помощи в сообществе Answers community, а также предложить новую функцию или улучшение на веб-сайте Excel User Voice.

Источник: support.office.com

Надстройка для вставки картинок (изображений) в Excel

Надстройка PastePictures для MS Excel: общие сведения

Предназначение программы: вставка изображений в таблицу Excel, поиск картинок в папке или в Google, экспорт картинок из таблицы в папку.

Основные функции программы:

  • вставка фото из папки (поиск по имени файла)
  • вставка картинок по ссылкам из таблицы
  • поиск изображений в гугл по данным с листа Excel
  • экспорт изображений с листа в файлы
  • сжатие изображений перед вставкой (получается файл минимального размера)
  • поиск картинок в подпапках (глубина поиска по подпапкам не ограничена)
  • добавление гиперссылок к вставляемым изображениям
  • 3 варианта поиска файлов в папке (по точному совпадению имени файла и значения ячейки, или по частичному вхожению)
  • 2 режима вставки картинок – подгонка размеров под ячейку, или соблюдение пропорций исходного изображения
  • возможность вставки изображений в примечания к ячейкам
  • поиск недостающих фотографий товара в Google (в т.ч. поиск по заданным сайтам)
  • режим вставки изображений сразу в несколько столбцов
  • экспорт полноразмерных изображений (в каком виде они хранятся внутри файла Excel)

Подробнее — в разделе Справка по программе

На видео рассказывается о работе с программой, и показан процесс её настройки:

Подробные инструкции и описание функционала также можно найти в разделе Справка по программе

Видеоинструкция по дополнительным возможностям

На видео рассказывается о возможностях поиска изображений в Google:

Подробные инструкции и описание функционала также можно найти в разделе Справка по программе

Надстройка позволяет искать в выбранной папке изображения, основываясь на содержимом ячеек таблицы Excel, и производить вставку найденных изображений в соседние ячейки (или в примечания к этим ячейкам).

Кроме того, надстройка умеет скачивать изображения по ссылкам, сохраняя загруженные изображения в заданной папке, и вставлять картинки в примечания к ячейкам.

Принцип работы с программой:

  1. Скачиваем файл программы (по ссылке выше), и сохраняем его куда-нибудь себе на диск. (например, на Рабочий Стол)
  2. Запускаем файл надстройки PastePictures.xla(как любой другой файл Excel – двойным щелчком)
  3. Открываем файл с названиями картинок (пример файла вы увидите при тестировании программы)
  4. На панели инструментов программы нажимаем кнопку «Настройки», выставляем нужные параметры
    • На форме настроек выбираем путь к папке, содержащей картинки (изображения)
    • Выставляем необходимые размеры для ячеек с картинками, выбираем первую ячейку на листе с именем файла
    • Указываем номер столбца, в который будут помещены изображения
    • и т.д. и т.п. – настроек там много разных, но разобраться в них совсем не сложно
  5. Нажимаем в меню «Изображения» – «Вставить картинки из папки», и через несколько секунд получаем результат.
  6. Если в исходной таблице – не имена файлов, а ссылки (URL) на картинки в интернете, то используем для запуска пункт меню «Изображения» – «Вставить картинки по ссылкам».

Как скачать и протестировать программу

Для загрузки надстройки PastePictures воспользуйтесь кнопкой Скачать программу

Если не удаётся скачать надстройку, читайте инструкцию про антивирус

Если скачали файл, но он не запускается, читайте почему не появляется панель инструментов

Это полнофункциональная пробная (TRIAL) версия, у вас есть 15 дней бесплатного использования ,
в течение которых вы можете протестировать работу программы.

Этого вполне достаточно, чтобы всё настроить и проверить, используя раздел Справка по программе

Если вам понравится, как работает программа, вы можете Купить лицензию

Лицензия (для постоянного использования) стоит 1500 рублей .

В эту стоимость входит активация на 2 компьютера (вы сможете пользоваться программой и на работе, и дома).
Если нужны будут дополнительные активации, их можно будет в любой момент приобрести по 500 рублей за каждый дополнительный компьютер.

Источник: excelvba.ru

Вставить картинку (изображение) в документ Excel

Рассмотрим способы добавления (вставки) картинок (изображений) в документ Excel на примере короткой инструкции по монтажу реле времени .

Инструкция выполнена в виде небольшой таблички:

Пошаговая инструкция на установку реле времени (сумеречного реле).
№ п.п. Действие Время на выполнение Изображение
1 Закрепить реле на din-рейке. 1 мин.
2 Присоединить подходящие и отходящие провода. 5 мин.
3 Установить текущее время на табло реле. 2 мин.
4 Запрограммировать отключение и включение контактов реле по времени. 10 мин.
5 Выставить переключатель в положение «Автомат» 1 мин.
Читайте также:  Где найти параметры эксель

В указанную таблицу в столбец, подписанный как «Изображение», следует добавить несколько картинок, показывающих порядок действий.

Картинки можно вставлять несколькими способами:

  1. Первый способ просто перетянуть картинку в нужную ячейку, «ухватившись» за нее левой кнопкой мыши.
  2. Второй способ использовать специальную вкладку «Вставка» . В этой вкладке есть иконка «Рисунок», нажав на которую Вы получите возможность указать путь к файлу и вставить его. При такой вставке рисунок переносится в файл и отображается в полном размере. Чтобы уменьшить рисунок до размера ячейки или привязать его к размерам ячеек, можно воспользоваться вкладкой формат, в которой настраивается множество критериев отображения картинки. В этой вкладке так же есть множество инструментов для редактирования изображения: обрезка, рамки, фильтры и т.д.
  3. Третий способ – копировать рисунок в буфер обмена ctrl+С или в контекстном меню «копировать», а потом вставить в нужный документ ctrl+V или в контекстном меню «Вставить»

Все эти способы помогут Вам значительно ускорить работу с таблицами и сделают их более красочными.

Источник: ruexcel.ru

Создание рисунка из ячеек, диаграммы или объекта в Excel

При необходимости вы можете скопировать данные листа, диаграммы или объекты и вставить их в виде статического рисунка в любое место в лист или диаграмму. Вы также можете вставлять данные, скопированные из другой программы, и вставлять их как рисунки в Microsoft Office Excel.

Копирование данных в виде рисунка в Excel

Выделите ячейки или щелкните диаграмму или объект, которые нужно скопировать как рисунок.

На вкладке Главная в группе буфер обмена щелкните стрелку рядом с кнопкой Копироватьи выберите команду Копировать как рисунок.

копировать > копировать как рисунок.” />

В диалоговом окне Копирование рисунка выполните указанные ниже действия.

В разделе внешний видвыберите нужный вариант.

В разделе Форматвыберите нужный параметр.

Чтобы получить наилучшее качество изображения, убедитесь, что выбран параметр как на экране, так и в параметрах рисунка . Тем не менее, чтобы сохранить качество изображения, элементы, которые вы копируете с помощью функции ” как на экране ” и параметры рисунка , всегда будут вставлены в 100% от исходного размера. Например, если вы масштабируете лист по адресу 75%, скопированный элемент из него может быть больше, так как он будет вставлен с фактическим размером.

Если вы выберете диапазон ячеек, но не хотите, чтобы линии сетки отображались при вставке, сначала перейдите в окно > Показать > снимите флажок линии сетки .

Нажмите кнопку ОК.

На листе или другом документе щелкните в том месте, куда вы хотите вставить рисунок.

На вкладке Главная в группе буфер обмена нажмите кнопку Вставитьили нажмите клавиши CTRL + V.

При необходимости вы можете изменить это изображение, если это необходимо. Дополнительные сведения можно найти в разделе ” Формат рисунков ” на вкладке ” Вставка рисунков”.

Копирование данных из другой программы и ее Вставка в формат Excel

В другой программе, например в Word, скопируйте в Excel данные, которые нужно вставить как рисунок, с помощью команды ” Копировать ” этой программы.

В Excel щелкните в любом месте листа или диаграммы, куда вы хотите вставить скопированные данные как рисунок.

На вкладке Главная в группе буфер обмена щелкните стрелку под кнопкой Вставитьи выберите команду Специальная Вставка.

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

На вкладке Формат внесите необходимые изменения.

При необходимости вы можете изменить это изображение, если это необходимо. Дополнительные сведения можно найти в разделе ” Формат рисунков ” на вкладке ” Вставка рисунков”.

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community, попросить помощи в сообществе Answers community, а также предложить новую функцию или улучшение на веб-сайте Excel User Voice.

Источник: support.office.com

Ячейки Excel в отдельные картинки.

Привет Пикабу,
Прошу прощения за беспокойство в вечер понедельника.
Нуждаюсь в помощи знатоков Excel. Суть вопроса проста: как из ячеек сделать отдельные картинки? Я гуглил, но результаты все по импорту изображения в ячейку. Возможно конечно я пропустил что-то.
У меня есть таблица с английскими словами которые я не знаю, несколько тысяч ячеек. Хочу из них сделать мини-карточки для телефона.
Комментарии для минусов прилагаются.
Спасибо и приятного вечера.

Дубликаты не найдены

1 Задать формат листа под карточку ( в настройках) или воспользоваться бесплатной программкой – визитки, доступна для Exel & World c 2003 г. или скинь мне на почту derfmate@mail.ru (ефча куу)

Спасибо за совет, постараюсь сам разобраться.

Ну да, чет думал, что понедельник.

Привет из будущего!

Exel $ World позволяет регулировать размер и легкие настройки в виде контраста и яркости, а также оформления непосредственно в прогамме. Нет смысла редакции в диспетчере и прочих фотошопах.

так и я о том же. Предложил услугу, могу сделать. Наше дело – предложить, ТС дело – отказаться.

Поваренная книга Экселиста #0 – Пару слов об Экселе

Для начала – рад видеть, что моих любимых и обожаемых подписчиков стало 21.. Шутки про “За 2 дня на Пикабу у меня – очко” оставлю себе))) В первую лавочку пишу для вас, ну и отдельная вам благодарочка за то, что вам это интересно.

Так как я такой же логичный, как стол-жираф-48, начну с того, с чего надо было начать изначально – а зачем, в принципе, Эксель то нужен, и что с ним можно делать (кроме Зиночка_Счет_В_Экселе_Сделает). Тут уже предвижу холивар, прям чувствую, потому сразу подкину на вентилятор.
Основные задачи в классическом понимании это НЕ ХРАНЕНИЕ данных, а их обработка. То есть, если рассматривать классическую MVC-модель – это контроллер. Потому что для представления есть бумага и принтер.

То, что мы храним в Экселе данные – ну да, нам так проще. Но по факту любая СУБД Эксель уничтожит по скорости работы непосредственно с данными. Но, чтобы что-то похожее на обработку организовать на уровне работы с СУБД – придется уже городить несколько этажей SQL запросов.

Потому данные выгружают в Эксель, а там уже и “понеслась звезда по кочкам”.

Да, сравнивать табличный процессор и модель разделения данных полностью неправильно, и все равно что сравнивать ежа и ужа, но. приходится, так как другой аналогии я с ходу не подберу. Да и, хоть она кривая, но определенное сходство есть.. Ну помним про мою логику, да?))

Отсюда, как мне кажется, возникает одна такая ошибочка – Эксель это не способ сделать “правильно”, это способ сделать БЫСТРО и РАБОЧЕ. 90% расчетных файлов в экселе понимает разработчик и Майкл Джексон, ситуация ровно такая же, как и с ремонтом ( “вот пусть тот криворукий исправляет пол, без пола лампочку не повесить”).

Читайте также:  Excel online самоучитель умная таблица

Далее чуть объяснений и примеров.

В последнее время очень “модно и молодежно” вводить машинный анализ в прогнозирование возможного поведения клиента (про b2c сегмент говорим). То есть, допустим, на основе покупок клиента делать прогноз (не статистику собираем, а Вангу косплеим) совершения им следующей покупки (как даты, так и состава комплексной покупки) и о возможных similar к ней. И уже на основании этого делать какие-либо выводы и офферы разные предлагать (ну там сырный соус к покупке, ну вы поняли да?)) ).

Реализация этого в экселе занимает от часов до дня, реализация этого в CRM занимает от недель до “на третьи сутки после второго пришествия”. Причем реализация на уровне CRM нифига не будет работать без прототипа, реализованного или на бумажке (в виде ТЗ) или в виде костылявых обработок в Экселе. Ведь программист, про кодера даже не будем, не обязан и не будет представлять себе вашу бизнес-логику, ему до нее как Ильичу до лампочки. Да и по поводу ТЗ крайне метко выразился мой препод в институте – то, что вы написали в ТЗ не будет работать так, как это вы написали, а будет так, как прочел (понял) разработчик. Потому мы делает что? Правильно – бьемся челом об сруб светлицы что-то невообразимо-кривое в Экселе, но при перемножении лося и порося получаем искомые 63,3%. Что и служит уже как и вашей (дядиной) прибыли, так и методом контроля разработки. То есть вы берете чистые данные, которые хранятся НЕ в Экселе, а в СУБД, и уже их вьювите и контролите.

Ну и, чтобы разбавить это “много-букофф-ниочем” – боевой пример.

Делаем простейшую экспертную систему в Экселе (без регистации и смс).

Найдите глазами столбец “% win”. В зависимости от нее – строка перекрашивается в другой цвет, меняется шрифт, ну и чем значение больше – тем больше вероятность покупки. Цифры относительны, получены крайне простым способом – телефон в руки и обзвон разных групп клиентов. Вычитаем оттуда погрешность “на идиота” и вуаля.

А теперь понимаем как это сделать.

Конкретно этот пример – фитнес. Далее мы ищем данные. Конкретно в моем случае искалось так:

– Таблица с клиентами – CRM (оттуда выгрузка в эксель, листы 62_кк)

– СКУД – с сервера СКУД (да, в CRM она интегрирована криво + карты можно и “забыть” внести в саму CRM, потому что некогда админам) (лист “посещения_приведенные”, и “пос_”)

– Статистика звонков – с телефонии (потому что оттуда она тупо информативнее, и мне не интересно мнение менеджера о клиенте. Если менеджер говорил более минуты – значит клиенту интересно, просто ему предлагали не то, что ему нужно). (лист 4)

– Дополнительные покупки – CRM (лист “Этот”)

– Экспертная оценка – эмпирически-добытые факты. (лист _tech)
(часть данных потер, ибо прайваси-все-дела + обработку специально взял аж с августа, с того времени их было еще версий 20)

Теперь включаем чем думать:

Клиент ходит постоянно -> его все устраивает

Клиент купил карту за сумму N -> сумма его устраивает (то есть предложи столько же или меньше, но не больше)

Клиент покупает что-либо еще -> деньги у клиента не кончились

Карта заканчивается в течение квартала -> купит сейчас, если пункты 1-3 соблюдены.

Клиент женщина 30+, на дворе август, клиент не ходит с июня -> предложить карту и детские занятия со скидкой

Клиенту не звонили с сервисными звонками в течение месяца и пункты 1-3 соблюдены -> звонить в ПЕРВУЮ очередь (не задрочен)

Клиент ходил, сейчас не ходит, возраст до 21 -> звонить и предлагать рассрочку, свалил на лето.

Каждому событию присваиваем свой вес, получаем 2 группы для обзвона. Клиенты на продление и клиенты с детьми на детские занятия.

Все просто, да? А теперь попытайтесь внедрить это в CRM за неделю) А за две? А за месяц? Да фиг выйдет.. В экселе заняло чуть больше 2х часов.

Коэфы задаем отдельно, даже цвета для выделения строк – тоже задаем через “техническую” вкладку.

И да, это тоже можно сделать по другому. А можно и не делать, ведь зачем нужно что-то делать, когда можно просто обсудить все в комментах, неправда ли?))

Источник: pikabu.ru

Вставить картинку в лист – по списку или выбору из ячейки

Сама по себе задача вставки картинки на листе не сложная и ответ лежит на поверхности: это доступно прямо из меню: Вставка (Insert) -группа Иллюстрации (Illustrations)Рисунок (Picture) :

Кодом VBA вставить тоже не сложно, даже макрорекордер записывает это действие:

Sub InsertPicture() ActiveSheet.Pictures.Insert(“G:ДокументыИзображенияExcel_vba_ru.png”). _ Select End Sub

Но что делать, если вставить надо картинку из заранее известной папки, но с изменяющимся именем? А если при этом еще надо не просто вставить – а подогнать размер картинки под размер ячейки? Например, в ячейке А2 название товара(соответствует названию картинки), а в В2 должно быть изображение. Здесь уже посложнее. Но тоже вполне реализуемо при помощи VBA

‘————————————————————————————— ‘ Author : The_Prist(Щербаков Дмитрий) ‘ Профессиональная разработка приложений для MS Office любой сложности ‘ Проведение тренингов по MS Excel ‘ https://www.excel-vba.ru ‘ info@excel-vba.ru ‘ WebMoney – R298726502453; Яндекс.Деньги – 41001332272872 ‘ Purpose: вставка в ячейку картинки с подгонкой под размеры ячейки ‘————————————————————————————— Sub InsertPicToCell() ‘путь к папке с картинками Const sPicsPath As String = “G:ДокументыИзображения” Dim sPicName As String, sPFName As String, sSpName As String Dim oShp As Shape Dim zoom As Double ‘в этой ячейке выпадающий список с именами картинок sPicName = Range(“A2”).Value ‘если имя картинки не задано If sPicName = “” Then Exit Sub End If ‘проверяем наличие картинки в папке sPFName = sPicsPath & sPicName If Dir(sPFName, 16) = “” Then Exit Sub End If ‘в эту ячейку вставляем картинку With Range(“B2”) On Error Resume Next ‘задаем картинке уникальный адрес, ‘привязанный к адресу ячейки sSpName = “_” & .Address(0, 0) & “_autopaste” ‘если картинка уже есть – удаляем её Set oShp = ActiveSheet.Shapes(sSpName) If Not oShp Is Nothing Then oShp.Delete End If ‘вставляем выбранную картинку Set oShp = ActiveSheet.Shapes.AddPicture(sPFName, False, True, .Left + 1, .Top + 1, -1, -1) ‘определяем размеры картинки в зависимости от размера ячейки zoom = Application.Min(.Width / oShp.Width, .Height / oShp.Height) oShp.Height = oShp.Height * zoom – 2 ‘переименовываем вставленную картинку(чтобы потом можно было заменить) oShp.Name = sSpName End With End Sub

Читайте также:  В excel сумма текстовых значений

Чтобы использовать код необходимо создать в книге стандартный модуль(переходим в редактор VBA( Alt + F11 ) –InsertModule) и вставить в него приведенный выше код. Чтобы картинка вставилась в ячейку, надо записать имя картинки в ячейку A2 , нажать сочетание клавиш Alt + F8 и выбрать макрос InsertPicToCell. Не очень удобно, правда?
Значит теперь попробуем сделать так, чтобы при каждом изменении в А2 картинка менялась сама, без необходимости запускать каждый раз код вручную. Для этого придется использовать возможность Excel отслеживать такие события, как изменения ячейки(чтобы лучше понять где это лучше сразу прочитать статью Что такое модуль? Какие бывают модули? и особое внимание уделить описанию про модули листов). Теперь чуть переделываем код:

Private Sub Worksheet_Change(ByVal Target As Range) ‘————————————————————————————— ‘ Author : The_Prist(Щербаков Дмитрий) ‘ Профессиональная разработка приложений для MS Office любой сложности ‘ Проведение тренингов по MS Excel ‘ https://www.excel-vba.ru ‘ info@excel-vba.ru ‘ WebMoney – R298726502453; Яндекс.Деньги – 41001332272872 ‘ Purpose: вставка в ячейку картинки с подгонкой под размеры ячейки ‘————————————————————————————— ‘путь к папке с картинками Const sPicsPath As String = “G:ДокументыИзображения” Dim sPicName As String, sPFName As String, sSpName As String Dim oShp As Shape Dim zoom As Double ‘т.к. список с именами картинок у нас в ячейке А2, ‘то определяем, что значение изменилось именно в ней ‘ если в ячейке А2 имена картинок, а список товара в другой ячейке ‘ то надо заменить А2 на ту, которая изменяется списком или руками If Intersect(Target, Range(“A2”)) Is Nothing Then ‘изменения не в А2 – ничего не делаем, завершаем код Exit Sub End If ‘в этой ячейке выпадающий список с именами картинок sPicName = Range(“A2”).Value ‘если имя картинки не задано If sPicName = “” Then Exit Sub End If ‘проверяем наличие картинки в папке sPFName = sPicsPath & sPicName If Dir(sPFName, 16) = “” Then Exit Sub End If ‘в эту ячейку вставляем картинку With Range(“B2”) On Error Resume Next ‘задаем картинке уникальный адрес, ‘привязанный к адресу ячейки sSpName = “_” & .Address(0, 0) & “_autopaste” ‘если картинка уже есть – удаляем её Set oShp = ActiveSheet.Shapes(sSpName) If Not oShp Is Nothing Then oShp.Delete End If ‘вставляем выбранную картинку Set oShp = ActiveSheet.Shapes.AddPicture(sPFName, False, True, .Left + 1, .Top + 1, -1, -1) ‘определяем размеры картинки в зависимости от размера ячейки zoom = Application.Min(.Width / oShp.Width, .Height / oShp.Height) oShp.Height = oShp.Height * zoom – 2 ‘переименовываем вставленную картинку(чтобы потом можно было заменить) oShp.Name = sSpName End With End Sub

Теперь переходим на лист, где в А2 будет изменяться название картинки -правая кнопка мыши на этом листе –Посмотреть код (View Code) . Вставляем код выше. Все, теперь при любом изменении в А2 картинка будет изменяться(если указанный файл будет найден в нужной папке).
Если картинки расположены не в “G:ДокументыИзображения” , а в той же папке, что и сама книга с кодом, достаточно эту строку
Const sPicsPath As String = “G:ДокументыИзображения”
заменить такими
Dim sPicsPath As String
sPicsPath = ThisWorkbook.Path & “”
тогда папка с книгой будет определяться автоматически.
Но я понимаю, что куда правильнее в ячейке А2 при помощи выпадающего списка выбирать наименование товара, а в В2 при помощи функции ВПР(VLOOKUP) подтягивать из справочника название картинки и уже по этому названию вставлять картинку. Но подстроить код под это уже не сложно. Приводить его здесь не буду, т.к. можно будет запутаться с описанием списка, функций, где и что. Тем более что сам код практически не отличается. К тому же именно в этой реализации код есть в приложенном к статье файле.

И еще часто встречающаяся задача по вставке картинок – это вставка картинок массово. Т.е. вставить картинки на основании значений, записанных в столбце. В данном случае это столбец В. А вставлять картинки будем в столбец С, подгоняя размеры картинок под размер каждой ячейки и проверяя, не вставляли ли мы эту картинку туда ранее

Впрочем, основная часть кода была приведена выше – здесь мы лишь добавим цикл по ячейкам. Так же в этом коде мы используем диалог выбора папки, в котором просматривать картинки:

‘————————————————————————————— ‘ Author : The_Prist(Щербаков Дмитрий) ‘ Профессиональная разработка приложений для MS Office любой сложности ‘ Проведение тренингов по MS Excel ‘ https://www.excel-vba.ru ‘ info@excel-vba.ru ‘ WebMoney – R298726502453; Яндекс.Деньги – 41001332272872 ‘ Purpose: вставка в ячейку картинки с подгонкой под размеры ячейки ‘————————————————————————————— Option Explicit Sub InsertPictureByVal() Dim sPicsPath As String Dim sPicName As String, sPFName As String, sSpName As String Dim llastr As Long, lr As Long Dim oShp As Shape Dim zoom As Double ‘выбираем путь к папке с картинками With Application.FileDialog(msoFileDialogFolderPicker) .Title = “Выбрать папку с картинками” ‘заголовок окна диалога .ButtonName = “Выбрать папку” .Filters.Clear ‘очищаем установленные ранее типы файлов .InitialFileName = ThisWorkbook.Path ‘назначаем первую папку отображения .InitialView = msoFileDialogViewLargeIcons ‘вид диалогового окна If .Show = 0 Then Exit Sub ‘показываем диалог sPicsPath = .SelectedItems(1) ‘считываем путь к папке End With ‘ если путь надо указать статичный – вместо диалога прописываем одну строку ‘ sPicsPath = “C:images” ‘проверяем, есть ли слеш после пути к папке ‘если нет – добавляем, иначе путь к картинке будет неверный If Right(sPicsPath, 1) <> Application.PathSeparator Then sPicsPath = sPicsPath & Application.PathSeparator End If ‘определяем последнюю ячейку по столбцу с именами картинок llastr = Cells(Rows.Count, 2).End(xlUp).Row ‘если кроме шапки в столбце с именами картинок ничего нет If llastr “” And sPicName <> “” Then ‘в эту ячейку вставляем картинку With Cells(lr, 3) ‘задаем картинке уникальный адрес, ‘привязанный к адресу ячейки sSpName = “_” & .Address(0, 0) & “_autopaste” ‘если картинка уже есть – удаляем её Set oShp = Nothing On Error Resume Next Set oShp = ActiveSheet.Shapes(sSpName) If Not oShp Is Nothing Then oShp.Delete End If On Error GoTo 0 ‘вставляем выбранную картинку Set oShp = ActiveSheet.Shapes.AddPicture(sPFName, False, True, .Left + 1, .Top + 1, -1, -1) ‘определяем размеры картинки в зависимости от размера ячейки zoom = Application.Min(.Width / oShp.Width, .Height / oShp.Height) oShp.Height = oShp.Height * zoom – 2 ‘переименовываем вставленную картинку(чтобы потом можно было заменить) oShp.Name = sSpName End With End If Next End Sub

Прикладываю пример в формате ZIP-архива, т.к. вместе с самим файлом с кодом я приложил папку images, которая содержит картинки, используемые для вставки в файле. Папка images и сам файл с кодом должны быть распакованы в одну папку.
Скачать файл:

Вставить картинку в ячейку (366,9 KiB, 48 скачиваний)

Обратная задача – сохранение картинок из листа – уже разбиралась мной в этой статье: Как сохранить картинки из листа Excel в картинки JPG

Статья помогла? Поделись ссылкой с друзьями!

Источник: www.excel-vba.ru