Home » Access VBA » Access VBAで開いているExcelブックを取得する

Access VBAで開いているExcelブックを取得する

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

「access vba 開いているExcelBookを取得」
といった検索でアクセスがありました。

[スポンサードリンク]

開いているExcelブックを取得するサンプルプロシージャ

何らかのExcelブックが1つ開かれている状態で、以下のSubプロシージャを実行してください。

Sub 開いているExcelブックを取得する()
On Error GoTo ErrHandl
 
 Dim xl_app As Object
 Set xl_app = GetObject(Class:="Excel.Application")
 
 Dim xl_bk As Object
 Set xl_bk = xl_app.ActiveWorkbook
 MsgBox xl_bk.Name
 
 Set xl_bk = Nothing
 Set xl_app = Nothing

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

開かれているブックの名前がメッセージボックスに表示されます。

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

上記のSubプロシージャでは以下の処理を行っています。

まず、VBAのGetObject関数を使って、

起動しているアプリケーションソフトとしてのExcelを表すExcel.Applicationオブジェクトを取得して、

変数xl_appに代入しておきます。

Dim xl_app As Object
Set xl_app = GetObject(Class:="Excel.Application")

このxl_app経由で行うこの後の処理は、実質的にExcel VBAです。

ExcelのApplicationオブジェクトに用意されているActiveWorkbookプロパティで、

アクティブなExcelブックを表すWorkbookオブジェクトを取得して、

変数xl_bkに代入します。

Dim xl_bk As Object
Set xl_bk = xl_app.ActiveWorkbook

ここまでの処理が、検索キーワード「access vba 開いているExcelBookを取得」への回答です。

「access vba 開いているExcelBookを取得」と検索なさった方が、ブックを取得してどうしたかったのかがわかりませんので、ここではWorkbook.Nameプロパティで取得したブックの名前を

メッセージボックスに表示しています。

MsgBox xl_bk.Name

最終更新日時:2024-02-16 15:46

[スポンサードリンク]

Home » Access VBA » Access VBAで開いているExcelブックを取得する

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

.