Home » Access VBA » Access VBAでExcelのシート名一覧を取得する

Access VBAでExcelのシート名一覧を取得する

動作検証バージョン:Windows 11 Home + 64bit Access & Excel バージョン 2406(ビルド17716.20002クイック実行)ベータチャネル

「VBA Access Excel シート名 一覧」
といった検索キーワードでアクセスがありました。

Access VBAを使ってExcelのシート名一覧を取得するには、どのようなコードを書けばいいのかを調べていらしたのでしょう。

[スポンサードリンク]

この記事では、開いているExcelブックのシート名一覧をイミディエイトウィンドウに作成するサンプルをご紹介します。

Excelのシート名一覧を取得するサンプルプロシージャ

Excelブックを1つ開いた状態で以下のSubプロシージャを実行すると、そのブックのシート名一覧がイミディエイトウィンドウに出力されます。

Sub Excelブックのシート名を一覧取得する()
On Error GoTo ErrHandl
  
 With GetObject(Class:="Excel.Application")

  Dim xl_sht As Object
  For Each xl_sht In .Sheets
   Debug.Print xl_sht.Name
  Next

 End With

Exit Sub
ErrHandl:
 Select Case Err.Number
  Case 429
   MsgBox "Excelが起動していないようです。"
  Case 91
   MsgBox "Excelファイルが開かれていないようです。"
  Case Else
   MsgBox Err.Description & vbCrLf & Err.Number
 End Select
 Err.Clear
End Sub

サンプルプロシージャで行っている処理

Access VBAからExcelを操作するには、まずExcelライブラリのApplicationオブジェクトへの参照を取得する必要があります。

上記のSubプロシージャでは、VBAのGetObject関数の引数Classに文字列「Excel.Application」を指定することで、起動しているExcelへの参照を取得しています。

With GetObject(Class:="Excel.Application")

Excel.Applicationへの参照を取得した後は、実質的にExcel VBAのコードです。

本当のExcel VBAであれば、
 Dim xl_sht As Object
 For Each xl_sht In Sheets
  Debug.Print xl_sht.Name
 Next

でアクティブなブックの全シート名がイミディエイトウィンドウに出力されます。
上記のSubプロシージャはほとんど同じですが、以下の行の「In .Sheets」の「.」を忘れてはいけないことに注意が必要です。

 For Each xl_sht In .Sheets

[スポンサードリンク]

Home » Access VBA » Access VBAでExcelのシート名一覧を取得する

「Access VBA」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.