サイトについて      連絡先   検索

VBA シートを取得する

はじめに

Excel VBA のシートを取得する方法を紹介します。

Sheets プロパティか Worksheets プロパティからシートを取得できます。

シートを取得する

1

インデックスで取得

Sheets の引数にインデックスを指定すると、そのシートを取得できます。

1 番目のシートを取得するには Sheets(1) または Worksheets(1) のように指定します。

Dim ws As Worksheet
Set ws = Sheets(1)     ' 1 番目のシートを取得
Set ws = Worksheets(1) ' 1 番目のシートを取得
Debug.Print(ws.Name)

Sheets と Worksheets の違いはワークシート以外を取得するかどうかです。

シート名で取得

Sheets の引数に名前を指定すると、そのシートを取得できます。

「Sheet1」のシートを取得するには Sheets("Sheet1") または Worksheets("Sheet1") のように指定します。

Dim ws As Worksheet
Set ws = Sheets("Sheet1")     ' 「Sheet1」のシートを取得
Set ws = Worksheets("Sheet1") ' 「Sheet1」のシートを取得
Debug.Print(ws.Index)

指定したシートが存在しないときはエラーが発生します。

アクティブなシートを取得

アクティブなシートを取得するには ActiveSheet のように指定します。

Dim ws As Worksheet
Set ws = ActiveSheet
Debug.Print(ws.Name)

選択しているシートを取得

ActiveWindow.SelectedSheets の引数にインデックスを指定すると、選択しているシートを取得できます。

選択している 1 番目のシートを取得するには ActiveWindow.SelectedSheets(1) のように指定します。

Dim ws As Worksheet
Set ws = ActiveWindow.SelectedSheets(1) ' 選択している 1 番目のシートを取得
Set ws = ActiveWindow.SelectedSheets(2) ' 選択している 2 番目のシートを取得
Debug.Print(ws.Name)

最後のシートを取得

Sheets.Count からシートの数を取得できます。

最後のシートを取得するには Sheets(Sheets.Count) または Worksheets(Worksheets.Count) のように指定します。

Dim ws As Worksheet
Set ws = Sheets(Sheets.Count)         ' 最後のシートを取得
Set ws = Worksheets(Worksheets.Count) ' 最後のシートを取得
Debug.Print(ws.Name)

関連ページ