複数のシートを選択するとき、
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
|