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ブックのシート名のリストを取得する」でした。