動作検証バージョン: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
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
[スポンサードリンク]
- Newer:今日の日付を入力するWordマクロ
- Older:Word VBAのFind.Executeで見つからない場合
Home » Access VBA » Access VBAで開いているExcelブックを取得する