HOME > 即効テクニック > Excel VBA > シート操作関連のテクニック > 複数シートの選択(配列を使用する)

複数シートの選択(配列を使用する)|Excel VBA

シート操作関連のテクニック

複数シートの選択(配列を使用する)

(Excel 97/2000/2002/2003/2007/2010/2013/2016)

複数のシートを同時に操作するには、シート名を配列で指定します。
次のサンプルは、Sheet1、Sheet2、Sheet4の3枚のシートを選択します。

Sub Sample1()
    Sheets(Array("Sheet1", "Sheet2", "Sheet4")).Select
End Sub

Sample1ではArray関数を用いてシート名を配列として指定していますが、選択するシート名が決まっていない場合は、このように指定することはできません。

その場合、配列であればよいのですから、シート名を配列変数に格納しておけば
Sheets(配列名) とすることができます。
次のSample2は、ブック内にある"売上"で始まるすべてのシート名を動的配列に格納し、対象のシートをすべて選択します。

Sub Sample2()
    Dim Sh As Worksheet
    Dim ArrayShName() As String
    Dim i As Long
    
    '動的配列を初期化
    ReDim ArrayShName(0) 
    
    For Each Sh In ThisWorkbook.Worksheets
        If Sh.Name Like "売上*" Then
            '配列の内容を保持したままシート名を配列に追加する
            ReDim Preserve ArrayShName(i)
            ArrayShName(i) = Sh.Name
            i = i + 1
        End If
    Next Sh
    
    '指定した名前のシートがあるか確認
    If ArrayShName(0) = "" Then Exit Sub
    
    'シート名を格納した配列変数を指定してSelect
    Worksheets(ArrayShName).Select
End Sub