Добавление и удаление изображений на листе Excel
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
' Insert a picture at the selection. Sub Button1_Click() Dim filters As String Dim filename As Variant ' Define the file selection filters. filters = "Image Files,*.bmp;*.tif;*.jpg;*.png," & _ "PNG (*.png),*.png,TIFF (*.tif),*.tif," & _ "JPG (*.jpg),*.jpg,All Files (*.*),*.*" ' Get the file name. filename = Application.GetOpenFilename( _ filters, 0, "Select Image", "Take It", False) If filename = False Then Exit Sub ' Insert the picture. InsertPicture CStr(filename), Application.Selection End Sub ' Insert a picture into a cell. Sub InsertPicture(filename As String, location As Range) Dim pic As Picture Set pic = ActiveSheet.Pictures.Insert(filename) pic.Top = location.Top pic.Left = location.Left End Sub |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
'Вставьте изображение при выборе. Sub Button1_Click () Dim фильтры As String Dim filename Как вариант 'Определите фильтры выбора файлов. filters = "Файлы изображений, * .bmp; * .tif; *. jpg; *. png," & _ «PNG (* .png), * .png, TIFF (* .tif), *. Tif," & _ «JPG (* .jpg), *. Jpg, Все файлы (*. *), *. *" 'Получить имя файла. filename = Application.GetOpenFilename (_ фильтры, 0, «Выбрать изображение», «Возьми его», «Ложь») Если filename = False, то Exit Sub 'Вставьте изображение. InsertPicture CStr (имя файла), Application.Selection End Sub 'Вставьте изображение в ячейку. Sub InsertPicture (имя файла As String, местоположение As Range) Dim pic As Picture Установить pic = ActiveSheet.Pictures.Insert (имя файла) pic.Top = location.Top pic.Left = location.Left End Sub |
...
Метод InsertPicture вызывает метод Insert для активного листа Picture. Затем он устанавливает свойства изображения Top и Left в Top и Left местоположения, переданного в подпрограмму. Это положение изображения в желаемой ячейке.
При нажатии кнопки «Удалить изображение» выполняется следующий код.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
' Remove pictures from the selected cell. Sub Button2_Click() If (TypeOf Application.Selection Is Range) Then RemovePictures Application.Selection ElseIf (TypeOf Application.Selection Is Picture) Then Application.Selection.Delete Else MsgBox "I don't know how to remove pictures form a " & _ TypeName(Application.Selection) End If End Sub ' Remove pictures from a cell. Sub RemovePictures(location As Range) Dim i As Integer Dim pic As Picture For i = 1 To ActiveSheet.Pictures.Count Set pic = ActiveSheet.Pictures(i) If pic.Top = location.Top And _ pic.Left = location.Left _ Then pic.Delete End If Next i End Sub |
Обработчик событий кнопки определяет, является ли текущий выбор диапазоном, изображением или чем-то еще. Если выбор является диапазоном, код вызывает метод RemovePictures. Этот метод пропускает все изображения на активном листе. Если он находит изображение с Top и Left в активной ячейке, код удаляет его.
Если выделение представляет собой изображение, обработчик события Button2_Click удаляет его.