【VBA】全てのシートを部分一致で配列に格納する方法
日々の業務で大量のデータを扱う際、特定のキーワードを持つシートを集める作業は手間がかかるものです。この記事では、部分一致で指定した文字列を含む全てのシート名を配列に格納するVBAコードを紹介します。
サンプルコード
VBA
Option Explicit
Sub CollectSheetsIntoArray()
Dim ws As Worksheet, arr() As String, i As Long, j As Long
Dim searchStr As String
ReDim arr(1 To ThisWorkbook.Sheets.Count)
searchStr = "部分一致文字列"
Application.ScreenUpdating = False
For Each ws In ThisWorkbook.Worksheets
If InStr(ws.Name, searchStr) > 0 Then
j = j + 1
ReDim Preserve arr(1 To j)
arr(j) = ws.Name
End If
Next ws
Application.ScreenUpdating = True
MsgBox "配列に格納されたシート名の数: " & UBound(arr), vbInformation
End Subよくある質問
Q 元に戻せますか?
A.
VBAの実行結果は「元に戻す」が効きません。必ずバックアップを取ってから実行してください。
Q エラーが出たら?
A.
シート名や検索文字列が正しいか確認してください。