📘 Excel逆引き事典

【VBA】特定の名前のシートを配列を使って高速に取得する方法

日々の業務では、同じシートを何度も開くことがありますが、そのたびにマウス操作をするのは効率が悪いですよね。特に大量のシートを持つワークブックでは、特定の名前のシートを高速で取得できるVBAコードがあれば業務は大幅に効率化できます。

サンプルコード

VBA
Option Explicit
Sub GetSheetsToArray()
    Dim ws As Worksheet
    Dim sheetNames() As Variant
    Dim i As Integer, lastRow As Long
    
    ' 特定のシート名を配列に格納
    ReDim sheetNames(1 To 3)
    sheetNames(1) = "Sheet1"
    sheetNames(2) = "Sheet2"
    sheetNames(3) = "Sheet3"
    
    ' 配列の要素数をカウント
    lastRow = UBound(sheetNames)
    
    ' シート取得処理開始
    Application.ScreenUpdating = False
    For i = 1 To lastRow
        Set ws = ThisWorkbook.Sheets(sheetNames(i))
        Debug.Print ws.Name
    Next i
    
    ' 更新を再開
    Application.ScreenUpdating = True
End Sub

よくある質問

Q 元に戻せますか?

A.
VBAの実行結果は「元に戻す」が効きません。必ずバックアップを取ってから実行してください。

Q エラーが出たら?

A.
シート名や列番号が正しいか確認してください。