- 締切済み
【VBA】マクロのルールについての文章 解説
マクロのルールについて記載された一文について、次の内容を噛み砕いて教えていただけますか。 さっぱりわかりません。。。 「イベントを利用するマクロはオブジェクトのモジュールに記述する」 ワークシートをアクティブにすると、アクティブになったワークシートでActivateイベントが発生します。このイベントを利用して、ワークシートが切り替わった時自動的に起動するようなマクロは、Worksheetオブジェクトのモジュールに記述しなければなりません。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- shirokuma2014
- ベストアンサー率25% (41/162)
VBEを使って、ある程度マクロを書いている という前提でお話します。 ・モジュールとは書くトコです。 いつもは『標準モジュール』に書いていると思います。 ココは自由に書いていい場所なんで「どこのシートから呼び出してもいいですよ」ということです。「他のブックからもジャンジャン呼び出して下さい」ということです。 ブック…(エクセルファイルのことを「ブック」と言います) -- ・オブジェクトとはブックとかシートとかのことです。 ゲームで出てくる、木のオブジェクトとかオブジェクト破壊とかいう言葉と同じです。セルとかもオブジェクトの一部です。まぁ部品という意味です。 -- ・イベントとは、何か操作をした瞬間に(勝手に)動かしますよ。ってマクロです。 膝のお皿を叩くと「ピコンッ」て(絶対)足が動いてしまうのがイベントです。 足を自分で動かすのが普通のマクロです。 -- ThisWorkbookというモジュールに書くと、ブックが開いた時や閉じた時、保存した時に動くイベントとなります。 各シート名のモジュール(Sheet1(Sheet1)とか)に書くと、そのシートを開いた時やシート内のセルを変更した時に動くイベントになります。 それぞれVBEの「標準モジュール」の上の「Microsoft Excel Objects」というフォルダにあります。 ココにマクロを書いてもいいんです。 -- 「イベントを利用するマクロはオブジェクトのモジュールに記述する」 ↓ 「なんかした時に勝手に動くマクロは、標準モジュールじゃなくてシートとかのモジュールに書いてね」
- kmetu
- ベストアンサー率41% (562/1346)
No2の補足です > Worksheetに関するイベントの候補が選択できるようになります。 右側のドロップダウンリストにが抜けてました。
- kmetu
- ベストアンサー率41% (562/1346)
たとえば、Sheet1がアクティブになったときに自動的に何かをするマクロを作成する場合、VBEの左側にあるプロジェクトウィンドウでSheet1をダブルクリックしたときに表示される右側のコードペインに記述しなければならないということです。(左側とか右側とかは何も設定を変更していない場合の位置です) アクティブイベント以外でも、コードペインの上にある左側のドロップダウンリストでWorksheetを選択するとWorksheetに関するイベントの候補が選択できるようになります。ここで選択した動作は、Sheet1のコードペインならSheet1だけに適用されます。 ちなみに、ThisWorkbookのコードペインでも同じようにしてWorksheetに関するイベントが記述できますが、そこで記述した場合全てのWorksheetに適用されます。
- bartok88
- ベストアンサー率6% (16/247)
ワークシートActivateイベントはワークシート固有なので イベントハンドリング処理はこのWorksheetオブジェクト内に記載しないといけない。