Excelでは、次のダイアログを使用して、画像にマクロを割り当てることができます。
これにより、次のコードが生成されます。
Private Sub MyShape_Click()
' ...
End Sub
ただし、このマクロをさまざまな画像に割り当てる必要があります。クリックハンドラー内から選択された画像を特定するにはどうすればよいですか?また、その画像への参照を取得するにはどうすればよいですか?
アップデート:
すべての画像に同じマクロを割り当て、マクロで使用Application.Caller
して、それを呼び出した画像/形状を決定します。この場合、(画像/形状)Application.Caller
はタイプになりString
ます。
Private Sub GenericPicture_Click()
Select Case Application.Caller
Case "Picture 1"
'do your work
MsgBox "You got me"
Case "Picture 2"
'do your work
...
End Select
'Lets flip the picture that has been clicked
With ActiveSheet.Shapes(Application.Caller)
.Flip msoFlipHorizontal
End With
End Sub
また、個別のマクロからのパラメーターを使用して、必要な処理ロジックを実装するsubを呼び出す必要な動作を実装することもできます。
Sub Picture1_Click()
DoWork 1
End Sub
Sub Picture2_Click()
DoWork 2
End Sub
Sub DoWork(ByVal pic As Integer)
'Implement your logic here
MsgBox "Hi! I am picture" & pic
End Sub
画像/図形に割り当てるマクロはどこPicture1_Click()
にありますか。Picture2_Click()