Как обнаружить событие вставки изображения в Excel - PullRequest
0 голосов
/ 15 октября 2018

Как я могу захватить событие, основанное на том, что «изображение было вставлено в текущий лист в любой целевой ячейке»?

  • Я знаю, как обнаружить действие «Вставить» в лист,согласно этот вопрос здесь.Однако это основано на Worksheet_Change, который не срабатывает при вставке изображения.
  • Я также рассмотрел перехват всех событий вставки, как объяснено в этой статье , но это простопроверяет все параметры (клавиатура, мышь, панель команд).Мне все равно пришлось бы вручную проверять «было ли это изображение вставлено».

То, что я пытаюсь выяснить, в основном то, что происходит в этой первой ссылке (подключиться к Worksheet_Change событие и продолжить, когда Change был основан на Paste), но также может обнаружить тот факт, что объект Shape был добавлен на лист, где Shape.Type равно 13 (согласно этиперечисления )

Любая помощь очень ценится.

Пример кода:

Private Sub Worksheet_Change(ByVal Target As Range) 'Doesn't trigger on Image Paste
Dim ws As Worksheet
Dim imageCnt As Integer
Dim sh As Shape
Dim UndoList As String

Set ws = ActiveSheet
UndoList = Application.CommandBars("Standard").Controls("&Undo").List(1)
imageCnt = 0

If Left(UndoList, 5) = "Paste" Then 'When paste.
    If Target.Address = "$C$8" Then 'Where user is instructed to paste.
        With ws 'Check if there's a new image:
            For Each sh In .Shapes
                If sh.Type = msoPicture Then
                    imageCnt = imageCnt + 1
                End If
            Next sh
            If imageCnt > oldImageCnt Then 'oldImageCnt publicly declared elsewhere
                Set sh = .Shapes(.Shapes.Count)
                'Do stuff with the pasted image here.
            End If
        End With
    End If
End If
End Sub

К сожалению, я не могу просто потопить событие в коллекции Shapes иличто-то похожее.Любой совет / помощь очень ценится.

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