web-dev-qa-db-ja.com

特定のセルを1回クリックしてマクロをトリガーする

指定したセルを1回だけクリックすることにより、Excel 2010でマクロを開始する方法を指定してもよろしいですか?どこかで解決策を見たことがありますが、今ではそれをたどることができません。

5
Noob Doob

ワークシートでセルD4をクリックすると、次のコードが起動します。

シートタブを右クリックし、[コードの表示]を選択します。これをコードウィンドウに貼り付けます。

Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Selection.Count = 1 Then
        If Not Intersect(Target, Range("D4")) Is Nothing Then
            MsgBox "Hello World"
        End If
    End If
End Sub

「D4」のセル参照を調整して、目的のセルを反映させます。 MsgBox行を目的のコードに置き換えます。

8
teylyn

これは、元の質問に対する若干異なるアプローチであり、一部のアプリケーションに適している場合があります。

' Make the desired cell a hyperlink to itself ...
With ThisWorkbook.Sheets(mysheet)
  .Hyperlinks.Add Anchor:=.Cells(myrow,mycol), Address:="", SubAddress:="R[0]C[0]"
End With

' ... and then let the handler for the FollowHyperlink event do the business: 
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
  Debug.Print "clicked " & Target.TextToDisplay & " on row " & Target.Range.Row
End Sub
0
Ray