複数シートの選択

 複数のシートを選択するとき、
 
 Sheets(Array("Sheet1", "Sheet2")).Select

 のようにArray関数を使います。この場合、Array関数を用いてシート名
を配列化していますが、配列であればよいのですから、シート名を配列変数
に格納しておけば

 Sheets(変数名)

とすることが出来ます。

 サンプルではあらかじめ用意した配列変数に一定の類似シート名(同一の
接頭辞:ここでは”売上表”で始まるシートすべて)を格納し、対象シート
をすべて選択します。


Option Base 1

Sub SelectSheetsByName()

    Dim Sh As Worksheet
    Dim varShName() As Variant
    Dim i As Integer
    
    ReDim varShName(1) '初期状態を設定
    
    For Each Sh In ThisWorkbook.Worksheets
    If Sh.Name Like "売上表*" Then
        i = i + 1
        ReDim Preserve varShName(i) '配列の内容を保持したまま上限を変更
        varShName(i) = Sh.Name '対象シート名の格納
    
    End If
    Next
    
    '指定した名前を持つシートがなければ初期状態のまま
    'なので配列の下限(1でもよい)が空白のままであれば中断
    If varShName(LBound(varShName)) = "" Then Exit Sub
    
    'シート名を格納した配列変数を指定してSelect
    Worksheets(varShName).Select

End Sub

Excel97/2000



戻る


Excel Word Access VBA! モーグ