配列操作

「ブック内の特定のシート名を配列に格納する」処理をパーツ化する【ExcelVBA】

指定エクセルブックの特定シート名のみ、配列で取得したい場合があります。
パーツ化した処理で配列に特定のシート名を一括で格納します。

ブック内の特定のシート名を配列に格納するサンプルコード

'■指定ブックの特定のシート名を配列に格納する
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で都度ループさせることができますが、配列に入れた方が便利な場合は本コードを使用します。

関連記事

コメント

タイトルとURLをコピーしました