「access vba word active windows」
といった検索キーワードでアクセスがありました。
Access VBAで、WordのアクティブなWindowオブジェクトを取得するコードを探していらしたのでしょうか。
WordのアクティブなWindowを取得するサンプルプロシージャ
何らかのWordファイルが開かれた状態で、以下のSubプロシージャを実行してください。
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を取得する