Вы можете легко вставлять изображения в электронные таблицы Excel и редактировать их с помощью макроса. Вот как вставить изображение в ячейку с помощью VBA в Excel .
Visual Basic для приложений, сокращенно VBA, представляет собой разновидность Visual Basic 6, интегрированную в программы Microsoft Office. С помощью программирования VBA позволяет автоматизировать задачи в приложениях Office, включая Excel. В некоторых случаях вы даже можете добавлять новые функции в Excel с помощью VBA.
Даже если вам нужно работать с кодом, чтобы использовать VBA, это не значит, что VBA полон букв и цифр. С помощью VBA в Excel вы можете создать макрос, который позволяет вставлять изображение в ячейку или диапазон ячеек. Вот что вам нужно знать о вставке изображений в ячейки Excel с помощью VBA.
Как вставлять изображения в ячейки с помощью VBA в Excel
Чтобы создать макрос, который вставляет изображение в ячейку Excel с помощью VBA, вам действительно не нужны какие-либо продвинутые знания Visual Basic. Все, что вам нужно сделать, это включить инструменты разработчика, создать макрос и вставить соответствующий код. Конечно, вы также можете вставлять изображения в Excel без использования VBA. Однако в этой статье мы сосредоточимся на VBA.
1. Включите инструменты разработчика.
Чтобы использовать VBA в Excel, вам необходимо включить инструменты разработчика. Это действие активирует вкладку «Разработчик» на ленте, которая по умолчанию отключена.
- Откройте Эксель .
- Перейдите в меню «Файл» .
- Нажмите «Параметры» внизу экрана. Появится окно параметров Excel .
- В параметрах Excel перейдите на вкладку «Настроить ленту» .
- В основных вкладках отметьте «Разработчик» .
Теперь инструменты разработчика, включая доступ к VBA, включены. Вам не нужно делать это каждый раз, когда вы хотите использовать VBA в Excel. Инструменты разработчика всегда будут включены, пока вы их не отключите.
2. Создайте макросы и вставьте код.
- В Excel перейдите на вкладку «Разработчик» .
- В разделе «Код» выберите «Макросы» .
- В новом окне введите имя макроса в поле Имя макроса . В статье будет использоваться InsertPhotoMacro .
- Нажмите Создать .
После нажатия кнопки «Создать» откроется окно VBA и отобразится код вашего макроса. В настоящее время код будет состоять из двух строк: Sub для запуска макроса и End Sub для его завершения.
Добавьте немного кода в этот макрос. Добавьте следующую строку кода между двумя строками:
Dim photoNameAndPath As Variant
Dim photo As Picture
photoNameAndPath = Application.GetOpenFilename(Title:="Select Photo to Insert")
If photoNameAndPath = False Then Exit Sub
Set photo = ActiveSheet.Pictures.Insert(photoNameAndPath)
With photo
.Left = ActiveSheet.Range("A1").Left
.Top = ActiveSheet.Range("A1").Top
.Width = ActiveSheet.Range("A1").Width
.Height = ActiveSheet.Range("A1").Height
.Placement = 1
End With
Окончательный код будет выглядеть так:
Вам не нужно беспокоиться о сохранении этого процесса. Любые изменения, внесенные вами в VBA, сохраняются немедленно.
Теперь пришло время увидеть код в действии:
- Закройте окно VBA.
- Перейдите на вкладку «Разработчик» в Excel.
- Выберите «Макросы» в разделе «Код».
- Выделите только что созданный макрос.
- Нажмите «Выполнить» .
Теперь откроется сообщение с просьбой найти файл изображения, который вы хотите вставить. Выберите фотографию и нажмите «Открыть». Теперь вы увидите изображение в ячейке A1.
Обратите внимание: Excel уменьшит изображение, чтобы оно поместилось в ячейку A1. Вы можете изменить его и изменить код для вставки изображений в другие ячейки, даже в диапазон ячеек. В следующем разделе мы разделим код и объясним параметры.
3. Сплит-код
Чтобы код VBA работал так, как вы хотите, вам необходимо его понимать. При этом вы можете изменить код для вставки изображений в любую ячейку любого размера.
Sub insertPhotoMacro()
Dim photoNameAndPath As Variant
Dim photo As Picture
photoNameAndPath = Application.GetOpenFilename(Title:="Select Photo to Insert")
If photoNameAndPath = False Then Exit Sub
Set photo = ActiveSheet.Pictures.Insert(photoNameAndPath)
With photo
.Left = ActiveSheet.Range("A1").Left
.Top = ActiveSheet.Range("A1").Top
.Width = ActiveSheet.Range("A1").Width
.Height = ActiveSheet.Range("A1").Height
.Placement = 1
End With
End Sub
В начале кода оператор Dim используется для определения типа переменной. У нас есть два типа переменных: photoNameAndPath и photo . Сначала переменная, а затем изображение.
Оттуда запускается переменная photoNameAndPath , и откроется приложение, чтобы получить местоположение файла фотографии. Это делается с помощью Application.GetOpenFileName . Параметр Title является необязательным. Содержимое внутри него отображается как имя окна.
Используя If photoNameAndPath = False then Exit Sub , если указан неверный или пустой адрес, процесс завершится. Однако если предоставлен подходящий файл, Set photo = ActiveSheet.Pictures.Insert(photoNameAndPath) указывает, что изображение должно быть установлено как переменная, как было определено изначально. Он будет вставлен в активный рабочий лист.
Наконец, используйте With photo и 5 строк после нее, чтобы определить местоположение фотографии. .Left и .Top относятся к начальной позиции, а .Width и .Height относятся к конечной позиции. Если вы собираетесь вставить изображения в другую ячейку или диапазон, вам следует изменить эти строки.
.Placement указывает, что размер изображения должен быть изменен в соответствии с размером ячейки или вставленной произвольной формы. Установка значения 1 приведет к изменению размера в соответствии с ячейкой.
Наконец, приведенный выше код использует End With , а затем End Sub , чтобы закрыть макрос. Теперь вы можете изменить переменные photoNameAndPath и photo на любое другое имя, которое вам нравится. Просто не забудьте сохранить единообразие имен во всем коде.
Выше описано, как использовать VBA для вставки изображений в ячейки Excel . Надеюсь, статья окажется для вас полезной.