【Excel VBA】Excelブックのシート名のリストを取得する

スポンサーリンク

Excelブックのシート名のリストを取得する

今回は複数シートを管理するうえで役に立つExcelのマクロをご紹介します。
現在開いているExcelブックのすべてのシートのシート名を取得します。
取得したシート名はクリップボードに格納されるので
適宜、貼り付けを実行するだけでリスト化になります。

サンプルコード


    Dim i As Long
    Dim mySheetCnt As Long
    Dim mySheetName() As String

    mySheetCnt = ActiveWorkbook.Sheets.Count

    ReDim mySheetName(1 To mySheetCnt)

    For i = 1 To mySheetCnt
        mySheetName(i) = Sheets(i).Name
    Next i

    Dim j As Long
    Dim strMsg As String
    
    For j = 1 To UBound(mySheetName)
        strMsg = strMsg & mySheetName(j) & vbCrLf
    Next

    Dim myDO As New DataObject
    
    With myDO
        .SetText strMsg      '変数の値をDataObjectに格納する
        .PutInClipboard   'DataObjectのデータをクリップボードに格納する
    End With

    MsgBox "クリップボードに格納しました"

解説

はじめに「ActiveWorkbook.Sheets.Count」を用いて
Excelのブックの内のシート数を取得します。
そして、For文でExcelブック内のシート名を取得して配列に格納しています。

取得したシート名を格納した配列を順次読み込み、
文字型の配列に格納(改行をつけて格納)し直しています。

配列に格納し直した後は
「.PutInClipboard」でクリップボードに内容がコピーされます。

あとは手動でペースト(貼り付け)するだけです。

クリップボードの貼り付け(「.PutInClipboard」)の箇所を変更することで
他にも応用することができます。
例えばシートに転記させて、そのままリストとして活用する等です。

また今後もExcelやVBAについてお役立ち情報などご紹介していきたいと思います!!

以上、「【Excel VBA】Excelブックのシート名のリストを取得する」でした。

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする