【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 "クリップボードに格納しました"

解説

はじめにFor文でExcelブック内のシート数を取得します。
取得したシート数(要素数)によりシート名を順次読み込み、
文字型の配列に格納(改行をつけて格納)します。

格納後はクリップボードに内容がコピーされますので
あとは手動でペースト(貼り付け)するだけです。

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

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

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

スポンサーリンク

シェアする

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

フォローする