Добавление и удаление изображений на листе Excel

' 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
 'Вставьте изображение при выборе.
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 местоположения, переданного в подпрограмму. Это положение изображения в желаемой ячейке.

При нажатии кнопки «Удалить изображение» выполняется следующий код.

' 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 удаляет его.

Источник: http://csharphelper.com/blog/2015/11/add-and-remove-pictures-in-an-excel-worksheet/

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Adblock
detector