指定エクセルブックの特定シート名のみ、配列で取得したい場合があります。
パーツ化した処理で配列に特定のシート名を一括で格納します。
ブック内の特定のシート名を配列に格納するサンプルコード
'■指定ブックの特定のシート名を配列に格納する Public Function call_GetSheetNameToArrayspecific(wb As Workbook, str As String) Dim tmp() As Variant Dim ws As Worksheet Dim i As Long: i = 0 For Each ws In wb.Worksheets '■シート名がstrを含めば配列に格納 If InStr(ws.Name, str) > 0 Then i = i + 1 ReDim Preserve tmp(1 To i) tmp(i) = ws.Name End If Next ws call_GetSheetNameToArrayspecific = tmp End Function
実際の使い方
Public Sub sample() Dim shNameArray As Variant '■ActiveWorkbookのシート名に「月」が含むもののみ配列に格納 shNameArray = call_GetSheetNameToArrayspecific(ActiveWorkbook, "月") End Sub
その他
- Worksheets.Countで都度ループさせることができますが、配列に入れた方が便利な場合は本コードを使用します。
コメント