Worksheet_Activateイベント

Worksheet_Activateイベント
Worksheet_Activateイベント

リンクユニット


Worksheet_Activateイベントマクロ 18回

シートがアクティブになったら処理をする

今回は、ワークシート、グラフ シートのモジュールに記述してアクティブになったときに、実行するマクロです。


コードは、コピーしてご利用ください。

Activateの構文と引数

Activateの構文
 Private Sub object_Activate()

Private Sub Worksheet_Activate() 
	’処理したい内容をここに記述
End Sub

1. このブックのSheet2には、試験の結果が表示されています。
この表を昇順に並べ替えるというイベントを、Sheet2に書いています。
対象範囲を Me.Range("A3:E10") と指定しました。


Worksheet_Activateイベント-1
Private Sub Worksheet_Activate()
    Me.Range("A3:E10").Sort Key1:=Range("E3"), Order1:=xlAscending
End Sub

2.シートをアクティブにすると、以下の図のように点数で昇順に並び替えが行われてます。


Worksheet_Activateイベント-2

3. この表では、もともとは試験結果の氏名の列を昇順にしてありました。
そこで、もとに戻したいたい時は、Range.Sortメソッドの引数である、Key1をA列にしてやると、名前順に戻ります。
Key1:=Range("A3")

Private Sub Worksheet_Activate()
    Me.Range("A3:E10").Sort Key1:=Range("A3"), Order1:=xlAscending
    MsgBox "氏名の列をキーに昇順に戻しました。"
End Sub

Worksheet_Activateイベント-3

シートをアクティブにしたら入力件数を表示

4. もう一つ簡単な例をご紹介します。これはシートをアクティブにしたら、何行入力されているかを表示します。
変数 Pretotal を使い、カレントリージョンの行数を数え、入力行でない見出しの2行をマイナスします。
これで、前回までの入力件数となります。

Private Sub Worksheet_Activate()
    Dim Pretotal As Long
    Pretotal = Range("A3").CurrentRegion.Rows.Count - 2
    MsgBox "前回までの入力件数は" & Pretotal & "件です。"
End Sub

Worksheet_Activateイベント-4