VBAのActivateイベント
こちらでは、エクセルVBAのActivateイベントの解説になります。
イベントとはオブジェクトに対する処理や操作のことを言います。例えば、ワークシートをアクティブにした時に発生するActivateイベントやセルをマウスでダブルクリックした時に発生するBeforeDoubleClickイベントなどがあります。
オブジェクト名.メソッド名
目次
Activateイベント
Activateイベントは、ブック、ワークシート、グラフ シート、または埋め込みグラフがアクティブになったときに発生します。
構文 | Private Sub object_Activate() | |
---|---|---|
キーワード | 省略 | 説明 |
object | × | こちらは、必ず指定します。対象となる Workbook オブジェクト、または Worksheet オブジェクトを指定します。 |
同じブックを示す 2 つのウィンドウを切り替えると、WindowActivate イベントは発生しますが、そのブックに対し Activate イベントは発生しません。
また、新しいウィンドウを作成するときに、このイベントは発生しません。
次の使用例は、ワークシートがアクティブにされると、セル範囲 A1:A10 を並べ替えます。
Private Sub Worksheet_Activate()
Range("a1:a10").Sort Key1:=Range("a1"), Order:=xlAscending
End Sub
また、Chart オブジェクトでイベントを使用する方法以下になります。
埋め込みグラフでイベントを使用する
関連項目関連項目既定の設定では、埋め込みグラフでイベントを使用できます。埋め込みグラフを表す Chart オブジェクトでイベントを使用できるようにするには、新しいクラス モジュールを作成し、イベントで Chart オブジェクト型の変数を宣言します。たとえば、"Class1" というクラス モジュールを作成します。次のコードを新しいクラス モジュールに記述します。
Public WithEvents myChartClass As Chart
新しいオブジェクト変数が宣言されると、オブジェクト変数がクラス モジュールの [オブジェクト] ボックスに表示されます。新しいオブジェクト変数をクリックすると、オブジェクトに対して有効なイベントが [プロシージャ] ボックスに表示されます。イベントをクリックして、イベント プロシージャを記述できます。
しかし、このプロシージャを実行する前に、クラス モジュールで宣言したオブジェクト変数を埋め込みグラフに関連付ける必要があります。モジュールのいずれかで次のコードを記述し、実行することによって関連付けることができます。
Dim myClassModule As New EventClassModule
Sub InitializeChart()
Set myClassModule.myChartClass = _
Worksheets(1).ChartObjects(1).Chart
End Sub
InitializeChart プロシージャを実行すると、クラス モジュールの myChartClass オブジェクトはワークシート 1 の埋め込みグラフ 1 を指します。このグラフでイベントが発生すると、クラス モジュールのイベント プロシージャが実行されます。
立山 秀利
プログラミング初心者でもわかりやすいExcel VBAの入門書です。本書では、他言語でのプログラミング経験がない初心者でもVBAプログラミングが理解できるよう、重要な機能に焦点をしぼって、VBAのポイントとなるオブジェクトや演算子、条件分岐、ループ、変数、関数などにをやさしく解説しました。「計算ドリル」「販売管理」といったアプリケーションを作りながら、楽しくVBAを学べます。