燈明ブログ

現状は小池啓仁の応援ブログ

EXCEL-VBAでアクティヴシートを制御する

以下は、アクティブシート上のセルを書き換えるタイミング(Worksheet_Change)で、
任意のシートにアクティブシートを切り替えて、そのシートでの処理を行い、
もとのシートをアクティブシートに戻します。

・サンプル

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Sheet_Work As Worksheet
Dim Sheet_Save As Worksheet

    Set Sheet_Save = ActiveSheet
    Set Sheet_Work = Worksheets("Sheet2")
    Sheet_Work.Activate
    
    '任意シート(例ではSheet2)の任意の処理を記述する。
    MsgBox "Sheet2"
    
    Sheet_Save.Activate
    Set Sheet_Work = Nothing
    Set Sheet_Save = Nothing
End Sub

ちなみに、Worksheet_Changeイベントは、セルの値が変更された時に発生しますが、SelectionChangeイベントは選択範囲が変わった時に発生します。