動作検証バージョン:Windows 11 Home + 64bit Excel バージョン 2407(ビルド17730.20000クイック実行)ベータチャネル
「vba ほかのブックのシート一覧取得」
といった検索キーワードでアクセスがありました。
[スポンサードリンク]
他のブックのシート名一覧を取得するサンプルマクロ
sample.xlsxという名前のブックが開かれている状態で、以下のExcelマクロを実行すると、このSubプロシージャの書かれているブックのアクティブなワークシートのA列に、sample.xlsxブックのシート名一覧が作成されます。
Sub 他のブックのシート名一覧を作成する()
Dim bk As Workbook
Set bk = Workbooks("sample.xlsx")
Dim i As Long
For i = 1 To bk.Sheets.Count
ThisWorkbook.ActiveSheet.Cells(i, "A").Value _
= bk.Sheets(i).Name
Next
End Sub
Dim bk As Workbook
Set bk = Workbooks("sample.xlsx")
Dim i As Long
For i = 1 To bk.Sheets.Count
ThisWorkbook.ActiveSheet.Cells(i, "A").Value _
= bk.Sheets(i).Name
Next
End Sub
サンプルマクロで行っている処理
上記のサンプルマクロでは以下の処理を行っています。
Workbook型のオブジェクト変数bkに、sample.xlsxブックを代入しておいてから、
Dim bk As Workbook Set bk = Workbooks("sample.xlsx")
sample.xlsxブックのシート数だけFor~Nextループを回して、
Dim i As Long For i = 1 To bk.Sheets.Count
コードの書かれているブックのアクティブシートのA列に、
ThisWorkbook.ActiveSheet.Cells(i, "A").Value _
sample.xlsxブックのシート名を出力しています。
= bk.Sheets(i).Name
他ブックのシート名一覧を取得する際のエラーを回避するには
上記のサンプルマクロを実行したときに、sample.xlsxが開かれていなければ実行時エラーが発生します。
それを回避するのであれば、以下のようなエラー処理を入れましょう。
Sub 他のブックのシート名一覧を作成する__エラー処理入り()
On Error GoTo ErrHandl
Dim bk As Workbook
Set bk = Workbooks("sample.xlsx")
Dim i As Long
For i = 1 To bk.Sheets.Count
ThisWorkbook.ActiveSheet.Cells(i, "A").Value _
= bk.Sheets(i).Name
Next
Exit Sub
ErrHandl:
Select Case Err.Number
Case 9
MsgBox "指定されたブックが開かれていないようです。"
Case Else
MsgBox Err.Description & vbCrLf & Err.Number
End Select
Err.Clear
End Sub
On Error GoTo ErrHandl
Dim bk As Workbook
Set bk = Workbooks("sample.xlsx")
Dim i As Long
For i = 1 To bk.Sheets.Count
ThisWorkbook.ActiveSheet.Cells(i, "A").Value _
= bk.Sheets(i).Name
Next
Exit Sub
ErrHandl:
Select Case Err.Number
Case 9
MsgBox "指定されたブックが開かれていないようです。"
Case Else
MsgBox Err.Description & vbCrLf & Err.Number
End Select
Err.Clear
End Sub
[スポンサードリンク]
- Newer:VBAで選択セルを結合する
- Older:VBAでExcelのCODE関数を使いたい??
Home » エクセルマクロ・Excel VBAの使い方 » Workbooks・Workbook » VBAで他のブックのシート名一覧を取得する