• ベストアンサー

エクセル マクロの実行方法について

エクセル2003を使っています。 あるセル(例えばA1)をクリックする(アクティブにする)とあるマクロ(例えばmacro1)が実行されるようにしたいのですが、どのようにすればよいのでしょうか? フォームボタンを作ってボタンにマクロを割り当てるという方法は都合が悪いので、上記方法が実現できるととても助かります。 初歩的な質問で申し訳ありませんがよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • diashun
  • ベストアンサー率38% (94/244)
回答No.3

diashun です。 こういうVBEも・・・ Sheet1のVBEに以下を記述↓ Option Explicit Private Sub Worksheet_SelectionChange(ByVal Target As Range) Call Macro1(Target) End Sub 標準モジュールに以下を記述↓ Option Explicit Sub Macro1(Target As Range) Dim rA1 As Range Set rA1 = Range("A1") If Target.Address = rA1.Address Then 'セルA1がアクティブになったときの処理を記述 MsgBox "セルA1がアクティブになりました" Else 'セルA1がアクティブでない時の処理を記述 MsgBox "セルA1は非アクティブです" End If   Set rA1 = Nothing End Sub

MSZ006
質問者

お礼

ありがとうございます。 すばらしいです!思ったとおりの動きです! 大変参考になりました。ありがとうございました。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Target.Address = "$A$1" Then ' macro1 MsgBox "実行" End If End Sub $A$1のAは大文字でこの通りに。 上記はA1セルをダブルクリックすると「実行」とでます。 本番はMacro1の前の’を消し、MsgBoxの行を消して 下さい。 コマンドボタンをフォームに載せず、シートに貼りつける手もあります。 A1セルが実際は他のセルの場合はどう変えるべきかわかりますね。

MSZ006
質問者

お礼

ありがとうございます。ダブルクリックでは入力状態になってしまうのでちょっと期待通りの動きではありませんがとても参考になりました。

  • popesyu
  • ベストアンサー率36% (1782/4883)
回答No.1

VBEを開いて 該当のワークシートのイベントをSelectionChangeに指定して、以下下記のようなコードを。 --- Private Sub Worksheet_SelectionChange(ByVal  Target As Range)  If Target = Range("A1") Then   MsgBox ("処理中")  End If End Sub ---

MSZ006
質問者

お礼

ありがとうございます、参考になりました。

関連するQ&A