Home » エクセルマクロ・Excel VBAの使い方 » Office連携 » Excel VBAでWord.Selectionを取得する

Excel VBAでWord.Selectionを取得する

動作検証バージョン:64bit Windows 10 Pro + 32bit Excel + Word(バージョン2011 ビルド13426.20332 Microsoft Store)

「excel vba wordのselectionオブジェクト取得」
という検索キーワードでアクセスがありました。

Word.Selectionを取得するサンプル

Excelから表示したVBEで標準モジュールを挿入し、以下のSubプロシージャを作成後、Word文書が1つだけ開かれた状態で本文の一部を選択しておいてから、実行してみてください。

Sub WordのSelectionを確認する()
On Error GoTo ErrHandl

 Dim wd_app As Object ' Word.Application
 Set wd_app = GetObject(Class:="Word.Application")
 
 Dim wd_selection As Object ' Word.Selection
 Set wd_selection = wd_app.Selection
 Stop

Exit Sub
ErrHandl:
 Dim msg As String
 Select Case Err.Number
  Case 429
   msg = "Wordが起動していないようです。"
  Case Else
   msg = Err.Description & vbCrLf & Err.Number
 End Select
 Err.Clear
 MsgBox msg
End Sub

上記のSubプロシージャには、いわゆるExcel VBAのコードは含まれていませんから、PowerPointやAccessから表示したVBEでもこのまま実行できます。

「excel vba wordのselectionオブジェクト取得」ということですから、CreateObject関数ではなくGetObject関数を使ったコードにしています。
  Dim wd_app As Object
  Set wd_app = GetObject(Class:="Word.Application")

Wordが起動していない状態から、Word文書を開き参照するのなら、SelectionオブジェクトよりRangeオブジェクトを使うはずです。

WordのApplicationオブジェクトを取得した後は、実質的にWord VBAのコードです。

ローカルウィドウでWord.Selectionを確認しましょう

Stopステートメントでステップ実行モードになったら、拙著『いちばんやさしいPowerPoint VBAの教本』でも多用しているローカルウィドウを使って、オブジェクト変数wd_selectionにWordのSelectionオブジェクトが格納されている様子を確認しましょう。

WordのSelectionオブジェクトには、たくさんのプロパティが用意されていますから、

ローカルウィドウにもたくさんのデータが表示されます。Textには、Word文書で選択していた文字列が、下図のように表示されているはずです。

With文を使う場合

WordのApplicationオブジェクトを取得する部分は、オブジェクト変数を使わず以下のようにWith文にしても、もちろんOKです。

Sub WordのSelectionを確認する_With文利用()
On Error GoTo ErrHandl

 With GetObject(Class:="Word.Application")
  Dim wd_selection As Object ' Word.Selection
  Set wd_selection = .Selection
  Stop
 End With

Exit Sub
ErrHandl:

最終更新日時:2022-01-26 15:09

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » Office連携 » Excel VBAでWord.Selectionを取得する

「Office連携」の記事一覧

検索


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

.