0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Excel VBAからWordを操作してみた

Posted at

参照サイト
https://vba.9ol.net/excel-excel-vba-error-462-howto-240225/

Excel VBAからWordドキュメントを新規作成して画像を挿入するプログラムを作成したときにはまったところを残します。

Wordアプリケーションオブジェクトへの参照を取得する

On Error Resume Next
Set WRD = GetObject(, "Word.Application")
If Err.Number <> 0 Then
    Set WRD = CreateObject("Word.Application")
End If
On Error GoTo 0

CreateObject単独だとエラーになる場合がある

エラーになるかもしれない
Set WRD = CreateObject("Word.Application")

image.png
スクリーンショット 2024-08-16 135304.png

Wordがバックグラウンドで起動しているときにCreateObjectするとエラーになるみたいです

Excel VBAではWord定数を参照できない

DOC.Content.InsertAfter Text:="test"
'WRD.Selection.EndKey Unit:=wdLine, Extend:=wdMove
'WRD.Selection.InsertBreak Type:=wdLineBreak
WRD.Selection.EndKey Unit:=5, Extend:=0
WRD.Selection.InsertBreak Type:=6

wdLine=5
wdLineBreak=6

エラーになる
WRD.Selection.EndKey Unit:=wdLine, Extend:=wdMove

image.png
最初このエラーが表示されたとき、メソッドの指定が間違っているのかと思いはまってしまったのですが、
Excel VBAではWord VBAの定数が定義されていないことが原因でした。

インターネットで検索すると定数の値が調べられますので
下記のどちらかで対応する必要があります。
・グローバル定数として定義する
・定数を数値に置き換える

例えば下記のようなサイトで定数の値を調べられます。
https://learn.microsoft.com/ja-jp/office/vba/api/word.wdunits

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?