アクティブシートのオブジェクトの取得

広告

ワークシートのオブジェクトを取得するには、インデックス番号を指定するかワークシート名を指定してWorksheetオブジェクトを取得していましたが、取得するWorksheetオブジェクトを指定する方法として、現在アクティブになっているワークシートと指定することが出来ます。

アクティブなワークシートのWorksheetオブジェクトを取得するには、Applicationオブジェクト、Windowオブジェクト、又はWorkbookオブジェクトの「ActiveSheet」プロパティを使います。

Dim ワークシート As Worksheet

Set ワークシート = オブジェクト.ActiveSheet

オブジェクトを省略した場合には、現在作業しているワークブックが対象となります。

具体的な記述方法は次のようになります。

Dim sheet1 As Worksheet

Set sheet1 = ActiveSheet

サンプルプログラム

では簡単なサンプルで試してみましょう。

testsheet3.bas

Sub テスト()

    Dim sheet1 As Worksheet
    
    Worksheets(2).Activate
    
    Set sheet1 = ActiveSheet
    sheet1.Range("A2").Value = "Active"

End Sub

上記マクロを実行すると次のようになります。

アクティブシートの取得

今回はまず左から数えて2番目のシートがアクティブにした後で、アクティブシートの中にあるセルに対して値を設定しました。

( Written by Tatsuo Ikura )