配列操作

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

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

開いている特定のブック名を配列に格納するサンプルコード

'■開いている特定ブックのみブック名を配列に格納する
Public Function call_GetBookNameToArrayspecific(str As String)
    Dim tmp() As Variant
    Dim wb As Workbook
    Dim i As Long: i = 0
    
    For Each wb In Workbooks
        '■ブック名がstrを含めば配列に格納
        If InStr(wb.Name, str) > 0 Then
            i = i + 1
            ReDim Preserve tmp(1 To i)
            tmp(i) = wb.Name
        End If
    Next wb
    
    call_GetBookNameToArrayspecific = tmp
End Function

実際の使い方

Public Sub sample()

    '■開いているブックのうち、特定ブック名を配列に格納/拡張子はなしで取得。
    Dim wbNameArray As Variant
    wbNameArray = call_GetBookNameToArrayspecific("月")
    
End Sub


その他

  • Workbooks.Countで都度ループさせることができますが、配列に入れた方が便利な場合は本コードを使用します。

関連記事

コメント

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