ExcelWork.info

Excel(エクセル)のマクロ・VBA・関数・操作などのメモ

WithEvents キーワードを使ったイベントプロシージャ

   

イベント発生時の処理を作成

作成・実行の流れは以下のとおりです。

  1. WithEvents キーワードを使用して、クラスモジュール上にアプリケーション等のイベントプロシージャを作成する。
  2. 上記イベントプロシージャを有効にするプロシージャを作成する。(標準モジュール、ThisWorkbook モジュール、各シートごとのモジュールに記述します。)
  3. 2 で作成したプロシージャを実行する。(イベントプロシージャが待機状態になります。)

2 のプロシージャは、Workbook_Open イベントプロシージャ内(ThisWorkbook)に記述することで、ワークブック起動と同時に、アプリケーションのイベントプロシージャが待機状態になります。

WithEvents キーワードは、クラスモジュール上でしか使用できません。


WithEvents キーワードの使い方

【書式】

{ Private | Public } WithEvents name As type


項目の説明

  • name  ・・・  オブジェクト変数の名前を定義します。
  • type  ・・・  name の型を指定します。


インスタンスの作成

【書式】

Dim instance As New classname

  または

Dim instance [ As instancetype ]
Set instance = New classname


項目の説明

  • instance  ・・・  インスタンス名を指定
  • classname  ・・・  クラス名を指定
  • instancetype  ・・・  インスタンスのデータ型を指定します。



イベントの種類と作成

クラスモジュールの宣言セクションに、Application 型のオブジェクト変数を定義すると、オブジェクトボックス(② の部分)で、定義した変数を選択できるようになります。選択すると、プロシージャボックス(③ の部分)に、イベントが表示されます。

WithEvents キーワード 例01

クラスモジュールの宣言セクションに、Worksheet 型のオブジェクト変数を定義すると、プロシージャボックスには、Worksheet オブジェクトのイベントが表示されます。

WithEvents キーワード 例02



WithEvents キーワード 使用例


サンプルVBAソース



実行結果

「Sheet1」を選択した時

WithEvents キーワード 使用例01


 - クラス , , , ,

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

  関連記事

Property プロシージャ(Property Let ステートメント)

Property プロシージャ Property プロシージャは、変数やクラスの …

VBA クラス コンストラクタ・デストラクタ 例 01
VBAで、クラスを作成(コンストラクタ・デストラクタ)

VBA のコンストラクタとデストラクタ コンストラクタ コンストラクタは、クラス …

VBA クラスの作成例 1
VBAで、クラスを作成(クラスモジュール・インスタンス)

クラスの作成 VBA で、クラスを作成するには、クラスモジュールを使用します。ク …

Property Get ステートメント 例01
Property プロシージャ(Property Get ステートメント)

Property プロシージャ Property プロシージャは、変数やクラスの …

Property プロシージャ(Property Set ステートメント)

Property プロシージャ Property プロシージャは、変数やクラスの …