Home » Access VBA » Access VBAでWordのアクティブWindowを取得する

Access VBAでWordのアクティブWindowを取得する

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

「access vba word active windows」
といった検索キーワードでアクセスがありました。

Access VBAで、WordのアクティブなWindowオブジェクトを取得するコードを探していらしたのでしょうか。

WordのアクティブなWindowを取得するサンプルプロシージャ

何らかのWordファイルが開かれた状態で、以下のSubプロシージャを実行してください。

Sub アクティブなWordのWindowを取得する()
On Error GoTo ErrHandl

 With GetObject(Class:="Word.Application")
  
  Dim wd_wnd As Object
  Set wd_wnd = .ActiveWindow
  Stop
 
 End With

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

Stopステートメントで中断したら、VBEの[表示]-[ローカルウィンドウ]などからローカルウィンドウを表示することで、

上図のようにWordのWindowオブジェクトを取得できている様子を確認できます。

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

上記のSubプロシージャには、Access VBAと呼ぶべき箇所はありませんから、ExcelでもPowerPointでも、VBEを起動して標準モジュールに上記のプロシージャを作成すれば動くはずです。

VBAのGetObject関数で、

起動済のWord.Applicationへの参照を取得した後は、

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

ほぼWord VBAです。

拙著『Excel VBAユーザーのためのWord VBA入門(1): Document・Range・Selectionの基本編』の[7-2. SelectionはDocument-Rangeとは別系統の階層]で、WordのActiveWindowプロパティについて解説しています。

このActiveWindowプロパティを使うことで、

 Dim wd_wnd As Object
 Set wd_wnd = .ActiveWindow

Wordのアクティブなウィンドウを表すWindowオブジェクトを取得できます。

最終更新日時:2024-08-15 09:52

[スポンサードリンク]

Home » Access VBA » Access VBAでWordのアクティブWindowを取得する

「Access VBA」の記事一覧

検索


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

.