• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel VBA マクロの実行方法について)

Excel VBAマクロの実行方法について

このQ&Aのポイント
  • Excel VBAマクロを実行するための記述が見当たらない
  • Worksheet_Changeイベントを使用してセルのテキストチェンジをトリガーとしてマクロを実行する方法をご存知ですか?
  • Excel2010で使用する場合、上記の方法以外にセルの変更をトリガーとするマクロを実行する方法を教えてください

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

  • ベストアンサー
回答No.2

こんにちは。 >セルのテキストチェンジをトリガーとしてマクロを動作させる方法 クラスモジュールは、そのブックだけとは限らないです。 別の所にあっても、目的のイベントは働きますね。(それではウィルスもどきです(^^;) アドインでも可能ですが、COMアドインの方は、それが出来たかは知りません。 COMアドインは、新しいテクニックは知りませんから。 他にも、一般的には ThisWorkbook モジュールが一番濃厚です。 それ以外に、古いテクニックですが、標準モジュールに、Ver.5 辺りのVBAの方法で、"OnEntry" メソッドがありますが、今、Excel2010で試してみましたら、まだ生きているようですね。 しかし、Helpには出てきませんでした。

KURACMP
質問者

お礼

>WindFaller様 早速の回答ありがとうございます。 標準モジュールを再度確認した結果、OnEntryメソッドによって実現されている機能であることが分かり、無事悩みが解決できました。以下のようなサンプルプログラムを作成し動作も確認できました。ご教授いただき、ありがとうございます。 調べてみると、もともとのプログラムが2001年に作成されたものだったのでOnEntryが使用されていたのではないかと思っています。 サンプル: Sub Auto_Open() TrapEntry End Sub Sub TrapEntry() ActiveWorkbook.Worksheets("Sheet1").OnEntry = "movecells" End Sub Sub movecells() If ActiveCell.Address() = "$C$2" Then Range("G1").Select Exit Sub End If End Sub

その他の回答 (1)

  • f272
  • ベストアンサー率46% (8467/18126)
回答No.1

シートモジュールの中やクラスモジュールの中は見たのでしょうか?

KURACMP
質問者

補足

>f272様 早速返答いただきましてありがとうございます。 シートモジュール、クラスモジュールの中も確認しました。 クラスモジュールにはプログラムはありませんでしたが、シートモジュールには以下の中身のないプログラムが記載されています。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) End Sub 動作の補足として、デバッグで確認した動きを以下に記載します。 (1)セルに値(数値)を入力してEnter (2)標準モジュール内のプログラムが動作(特定のセルがActiveの場合、別のセルをActiveにする) (3)上記のシートモジュールが動作 ※試しにマクロの記録を行って確認しましたが、上記の動作と同じでした。 私としてはEnter押した直後に標準モジュールのプログラムが動作していることが分からない状態です。 宜しくお願い致します。

関連するQ&A