Как в excel вставить картинку

Как в Excel вставить картинку?

Добрый день!

Совсем недавно моему коллеге поручили сделать презентацию доклада, а в любом отчете много таблиц и картинок. Поэтому ко мне он подошел с закономерным вопросом: «Как в Excel вставить картинку?». Это сделать достаточно просто и легко, а также очень полезно, т.к. 80% информации успешнее усваивается с помощью визуальных образов. Для презентаций, прайсов, базы данных, эта возможность станет очень полезной и необходимой.

Я думаю, что достаточно много пользователей хотели бы визуализировать свою информацию, поэтому я хочу, с вами поделится своими знаниями. Поместить изображение в таблицу можно несколькими способами и на каждом из них будем останавливаться подробнее:

Простая вставка рисунка

В панели инструментов, во вкладке «Вставка» находится целый блок «Иллюстрации» с помощью которых вы можете добавлять изображения к себе в файл. В дальнейшем, при активизации картинки появляться дополнительная вкладка работы с рисунками «Формат». С ее помощью вы сможете отредактировать свое изображение (на примере, я показал, как производится обрезка ненужной части фото). Это конечно не фотошоп, но с картинкой можно хорошо поработать. Также можете воспользоваться контекстным меню (клик на картинке правой кнопкой мыши) и с предложенного варианта выбрать пункт «Размер и свойства…» и в открывшемся окне «Формат рисунка» есть очень много полезных настроечек.

Поместить изображение в примечание

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

Для начала нам необходимо собственно создать само примечание. Нужно выбрать ячейку, где оно должно содержатся, установить там курсор, вызвать контекстное меню и выбрать пункт «Вставить примечание». После в ячейке выбираем пункт «Изменить примечание» и в открывшемся примечании нажимаем на рамочку правой кнопкой мыши, вызываем контекстное меню. В этом меню выбираете пункт «Формат примечания». Переходите на вкладку «Цвета и линии». В разделе «Заливка» в пункте «цвет» в выпадающем меню выбираем «Способы заливки…». В открывшимся окне нужно выбрать закладку «Рисунок», следующим шагом нажимаете одноименную кнопку и в проводнике выбираете картинку для вставки в примечание и нажимаете «ОК». Как результат теперь в примечание размещается картинка.

Вставка картинки в ячейку

В этой главе рассмотрим, как нужно вместить картинку в ячейку и привязать к ее границам. Для начала нужно установить курсор на ячейку, в которую будете вставлять графическое изображение. Потом выбираете изображение для ячейки, нажимаете вкладку «Вставка», жмете пиктограммку «Рисунок» (если вы хотите вставить свое изображение) или «Картинка» (вы выбираете из базы предустановленных картинок или найденных в сети), указываете файл и нажимаете «ОК». Подгоните размеры картинки под границы ячеек или, наоборот, по необходимости. Когда картинка стоит в ячейке, вызываете контекстное меню, нажав на изображение ПКМ. В списке выбираете пункт «Размер и свойства». В окне «Формат рисунка» в разделе «Свойства» необходимо установить значок возле пункта «перемещать, и изменять объект вместе с ячейками» и нажимаете «Закрыть». Теперь настраивая ширину столбиков или высоту строк, ваша картинка также будет трансформироваться в размерах.

Добавление изображения с помощью макросов

Последним вариантом по внедрению изображений станет работа с макросами. С их помощью появляется возможность автоматизировать этот процесс и значительно его упростить. Описывать я его детально не буду, так как много макросов предоставлено на ваше усмотрение в интернете. К примеру, можете воспользоваться материалами статьи «Вставка картинок и изображений в ячейки листа Excel» которая размещена на хорошем сайте, где есть много чего о VBA.

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

До встречи на страницах TopExcel.ru!

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

Источник: topexcel.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

Чтобы использовать код необходимо создать в книге стандартный модуль(переходим в редактор 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

Вставка картинки в Excel и способы закрепления изображения в ячейке

При работе с Excel можно использовать не только числовые или текстовые данные, но и картинки. Это можно сделать, привязав их к определённому месту листа, или поместив в отдельную ячейку. Для того, чтобы правильно вставить и расположить картинку в электронной таблицы Эксель, можно воспользоваться несколькими способами.

Как вставить картинку на лист

Если скопировать картинку и вставить её в электронную таблицу Эксель, она просто займёт определённое место на листе. Если после этого изменять размеры ячеек, удалять или добавлять новые, то картинка останется на прежнем месте. Несмотря на то, что клетки под ней сдвинутся.

Для того чтобы правильно вставить фото в Excel, нужно учесть следующее:

  1. Картинка на странице будет смотреться лучше, если она целиком расположена внутри ячейки. Для этого нужно придать клеточке нужные размеры и форму.
  2. В дальнейшем возможны ситуации, когда содержимое электронной таблицы будет корректироваться. Это может привести к тому, что ячейки, расположенные под картинкой сдвинутся. Удобно, если расположение изображения привязано к определённой клеточке. Тогда при корректировке страницы ее расположение останется правильным.

Последнее свойство будет полезно, например, в том случае, если на листе проведена сортировка строк.

При соблюдении этих двух условий картинки, вставленные в документ, станут информативной и красивой его частью.

Вставка в ячейку

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

Перед тем, как вставить рисунок в ячейку, нужно запустить Excel. Затем выбрать клеточку, которая находится в том месте, куда нужно поместить рисунок. Во вкладке «Вставка» необходимо нажать на кнопку «Рисунок». После этого откроется экран для выбора нужного файла. Нужно отыскать каталог, где хранится изображение и указать на него. После подтверждения можно увидеть картинку, размещённую на странице Excel в нужном месте.

Прикрепление изображения

Если просто вставить картинку, то она не будет перемещаться в тех случаях, когда расположение ячеек будет меняться. В некоторых случаях этого желательно избежать. Например, если на странице приведён список сотрудников фирмы, а напротив вставлены их фотографии, то удобно, когда в результате сортировки расположение данных сохранится.

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

Защита листа

Для этого нужно сделать следующее:

  1. Нужно расширить границы ячейки и изменить величину рисунка таким образом, чтобы изображение поместилось внутрь клеточки.
  2. Надо кликнуть правой кнопкой мышки по рисунку и в контекстном меню выбрать строку «Размер и свойства».
  3. В левой части открывшегося окна находим перечень вкладок. Необходимо перейти на «Размер».
  4. Необходимо удостовериться в том, что рисунок целиком помещается внутри ячейки. В двух имеющихся чек-боксах («Относительно размера» и «Сохранить пропорции») должны стоять галочки.
  5. Далее необходимо перейти на вкладку «Свойства». В верхнем переключателе выбирают строку, соответствующую тому, что объект будет перемещаться вместе с соответствующими клеточками. Отмечают оба чек-бокса («Защищаемый объект» и «Выводить на печать»).
  6. Теперь необходимо выделить всю страницу. Это делают при помощи нажатия комбинации клавиш «Ctrl+A». Затем переходят к форматированию ячейки. Для этого необходимо кликнуть на ней правой клавишей мыши.
  7. Необходимо выбрать клеточку, в которой расположено изображение. На вкладке «Защита» надо отметить строку, где идёт речь о защите ячеек.
  8. Теперь в главном меню во вкладке «Рецензирование» нужно выбрать строку «Защита листа». На открывшемся экране требуется ввести пароль для разблокировки, и подтвердить ввод.

Важно учитывать, что требуется установить защиту и на нужную клеточку и на всю страницу. После этого изображение становится привязанным к соответствующей ячейке.

Вставка в примечание

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

Вставка картинки в примечание выполняется следующим образом:

  1. Сначала выбирают нужную ячейку и создают примечание к ней. Это можно сделать с помощью контекстного меню, выбрав в нём соответствующую строку.
  2. Кликнув на его границе, в появившемся меню переходят к формату примечания.
  3. В появившемся окне необходимо зайти на вкладку «Цвета и линии». При выборе цвета в нижней части есть кнопка выбора способа заливки.
  4. Для этого действия предусмотрено четыре вкладки, надо открыть ту, которая относится к рисункам. Предоставляется возможность указать файл, содержащий картинку. После подтверждения нужное изображение станет фоном примечания.
  5. Нужно отметить пункт, относящийся к сохранению пропорций рисунка.
  6. Во вкладке «Защита» отменяют защиту объекта.
  7. Среди свойств отмечают перемещение объекта вместе с ячейками.
Читайте также:  Как вставить таблицу из excel в word

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

Режим разработчика

Этот режим по умолчанию не является активированным. Чтобы им воспользоваться длязакрепления картинки в ячейке, в главном меню в ленте «Файл» переходят к параметрам.

В разделе «Параметры» выбирают настройку ленты и ставят галочку напротив строки «Инструменты разработчика».

Далее следует выбрать ячейку.

Теперь можно приступить к процедуре привязки. Делается это следующим образом:

  1. В ленте «Разработчик» нужно перейти к вставке объекта ActiveX, выбрав при этом изображение.
  2. На странице появится пустой прямоугольник. Кликнув правой клавишей мыши в контекстном меню, переходят к свойствам объекта. Их надо установить таким образом: Placement=1, для Picture, нажав на кнопку с многоточием, выбирают файл с изображением. Затем подтверждают ввод данных.
  3. На ленте «Формат» выбирают выравнивание. В появившемся подменю надо нажать на строку «Привязать к ячейке».

После выполнения этих действий картинка станет привязанной к ячейке.

Как сделать рисунок за текстом

Для этого необходимо установить подложку для страницы. Чтобы это сделать, в главном меню нужно перейти в разметку страницы. В ленте нужно выбрать пункт «Подложка».

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

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

Вставка картинки в колонтитул

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

Для того чтобы вставить картинку, нужно в главном меню выбрать Вставку. В ленте нажимают на «Колонтитулы». После этого выбирают «Картинки». Указывают файл, содержащий рисунок. После подтверждения он будет вставлен на страницу.

Если изображение будет выглядеть слишком ярким, его можно откорректировать. Для этого в разделе «Колонтитулы» выбирают установку формата рисунка. В выпадающем списке «Цвет» выбирают «Подложка». В результате цвет станет приглушённым.

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

Excel works!

Excel работает за вас

Excel works!

Thanks for Visiting

Как правильно вставить картинку или фото в Excel?

Иногда в табличный редактор требуется вставка дополнительных объектов из внешнего хранилища. Попробуем разобраться, как вставить картинку или фото в Excel , а после произвести настройку компонента.

Как правильно вставить картинку или фото в Excel? Как отредактировать изображение?

На первом этапе нужно присоединить картинку к документу.

  1. Отмечаем курсором нужную ячейку. В меню ВСТАВКА нажать кнопку РИСУНКИ.

  1. Программа предлагает из окна выбора картинки найти подходящую, пользуясь проводником Windows . В начале отобразится папка ИЗОБРАЖЕНИЯ, расположенная в директории пользователя, поэтому можно сразу переместить нужное фото в неё. После выбора следует нажать на кнопку ВСТАВИТЬ.

На картинке видно, как рисунок по умолчанию помещается на страницу, заполняя буквально всё её пространство в зависимости от разрешения.

Далее следует процедура редактирования, предназначенная для подгонки параметров изображения под документ.

  1. При нажатии правой кнопки мыши на фото, выпадает меню, в котором нам нужен пункт РАЗМЕР И СВОЙСТВА.
  1. Программа предлагает окно форматирования картинки, в котором можно найти большое количество разнообразных параметров относительно размеров, настройки качества, добавления эффектов, обрезки по краям и многое другое.
  1. После добавления фото на лист на ленте настроек активируется вкладка ФОРМАТ , предлагающая оптимальным способом произвести настройку. Об этом есть отдельная статья .
  1. Если потребуется вставить картинку или фото в Excel в определённую ячейку, нужно изменить размер изображения относительно габаритов этой ячейки. Есть разные способы это сделать:
  • Найти нужный пункт в ленте настроек рисунка.
  • Через окно РАЗМЕРЫ И СВОЙСТВА.
  • При использовании контекстного меню.
  • Зажав кнопку мыши, изменить размеры методом перетаскивания границ.

Как прикрепить изображение к ячейке?

Подогнав размеры фото так, чтобы оно не выходило за пределы ячейки, нужно прикрепить его к объекту. Это позволяет при сортировке данных перемещать ячейку вместе с фотографией. Существует несколько вариантов такой процедуры.

Алгоритм 1. Защита страницы от изменений
  1. Определяем нужный размер картинки и вставляем её в ячейку.
  1. Нажимаем на фото правой кнопкой мыши и выбираем пункт РАЗМЕР И СВОЙСТВА.
  1. В левом меню окна ФОРМАТ РИСУНКА выбираем РАЗМЕР и отмечаем пункты: «Сохранить пропорции», «Относительно исходного размера».
  1. Нажимаем на пункт меню СВОЙСТВА и отмечаем строки: «Выводить объект на печать», «Защищаемый объект». Активируем вариант привязки к фону: «Перемещать и изменять объект вместе с ячейками». После этого нужно нажать на кнопку ЗАКРЫТЬ в нижней части окна, чтобы применить настройки.

Как закрепить рисунок в ячейке для Excel 2016

  1. При помощи сочетания CTRL +A выделяем всё на странице и через контекстное меню нажимаем на пункт ФОРМАТ ЯЧЕЕК.
  1. В открывшемся окне на самой правой вкладке под названием ЗАЩИТА снимает отметку со строки «Защищаемая ячейка» и нажимаем кнопку ОК.
  1. Теперь аналогичное действие, но для ячейки с картинкой. Выделяем её, заходим в окно ФОРМАТ ЯЧЕЕК и отмечаем пункт «Защищаемая ячейка».
  1. На ленте настроек находим вкладку РЕЦЕНЗИРОВАНИЕ и нажимаем на кнопку ЗАЩИТИТЬ ЛИСТ.
  1. В окне защиты нужно ввести комбинацию символов для пароля и нажать ОК. Далее высветится окно, в котором нужно повторно указать пароль.

Теперь картинка привязана к выделенной ячейке и при любом изменении страницы изображение будет перемещаться вслед за ней.

Алгоритм 2. Использование режима разработчика

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

  1. Переходим в Excel по вкладке ФАЙЛ и находим пункт меню ПАРАМЕТРЫ.
  1. Находим в появившемся окне пункт слева НАСТРОЙКА ЛЕНТЫ и отмечаем строку «Разработчик» в разделе ОСНОВНЫЕ ВКЛАДКИ. Нажимаем ОК.
  1. Активируем ячейку курсором и во вкладке РАЗРАБОТЧИК на ленте настроек нажимаем кнопку ВСТАВИТЬ. В выпадающем меню нужно выбрать «Изображение» из элементов ActiveX .
  1. На листе появляется пустой квадрат, размеры которого можно настроить путём перетаскивания границ. Нажимаем на объекте ПКМ и переходим в окно СВОЙСТВА.
  1. Нужно изменить строку параметра PLACEMENT на «1». В строке PICTURE активируем кнопку с многоточием для вставки изображения.
  1. В окне проводника находим нужное фото и нажимаем ОТКРЫТЬ.
  1. После этих действий понадобится привязка картинки. Клацаем на изображении кнопкой мыши и во вкладке РАЗМЕТКА СТРАНИЦЫ нажимаем кнопку УПОРЯДОЧИТЬ. Выбираем пункт ВЫРОВНЯТЬ и нажимаем на кнопку выпадающего списка ПРИВЯЗАТЬ К СЕТКЕ. Далее следует потянуть мышкой за край картинки.

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

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

Картинка в примечании к ячейке

Хотите использовать фотографию или рисунок в качестве примечания к ячейке? Например, вот так:

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

Способ 1. Одиночная вставка

  1. Щелкните по ячейке, в которую будем вставлять примечание правой кнопкой мыши и выберите в контекстном меню Добавить примечание(Add comment) .
  2. Чтобы примечание во время настройки постоянно не пропадало, щелкните по ячейке правой кнопкой мыши и выберите команду Отобразить/Скрыть примечание (Show/Hide Comment) .
  3. Щелкните правой кнопкой мыши по штрихованной рамке вокруг примечания (штриховка при этом должна превратиться в точки) и выберите в контекстном меню команду Формат примечания (Format Comment) .
  4. В открывшемся окне перейдите на вкладку Цвета и линии (Colors and Lines) и из раскрывающегося списка Цвет (Color) выберите опцию Способы заливки (Fill Effects) :

  • В появившемся окне перейдите на вкладку Рисунок (Picture) и, щелкнув по кнопке Рисунок (Select Picture) , выберите нужный файл с изображением. Дополнительно можно установить флажок Сохранять пропорции рисунка (Lock picture aspect ratio) .
  • Жмем ОК во всех окнах и, возможно, немного подгоняем размеры примечания, чтобы картинку было хорошо видно.
  • Способ 2. Вставка оптом

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

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

    Выглядит все это, допустим, так:

    Откройте редактор Visual Basic (сочетание клавиш Alt+F11), вставьте новый пустой модуль (меню Insert – Module) и скопируйте туда текст этого макроса:

    Диапазоны rngPics и rngOut можно, естественно, заменить на свои.

    Теперь осталось открыть окно управления макросами (Alt+F8) и запустить наш созданный макрос кнопкой Выполнить (Run) . Результат будет примерно такой:

    Источник: www.planetaexcel.ru

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

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

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

    Читайте также:  2 Эксель файла сравнить

    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

    Чтобы использовать код необходимо создать в книге стандартный модуль(переходим в редактор 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