こんなコードでとりあえずは紙が出た。
With bookMarkInfo
.ZipCode = "123-4567"
.Address = "東京都横浜市"
.Name = "例の会社"
End With
Dim wordInstance As Word.Application
Dim docInstance As Word.Document
wordInstance = CreateObject("Word.Application")
docInstance = wordInstance.Documents.Add("C:\SampleTemplate.doc")
wordInstance.Visible = False
With docInstance.Bookmarks
.Item("YUBIN_NO").Range.Text = bookMarkInfo.ZipCode
.Item("JUSYO").Range.Text = bookMarkInfo.Address
.Item("NAME").Range.Text = bookMarkInfo.Name
End With
docInstance.PrintOut()
docInstance.Close(False)
docInstance = Nothing
wordInstance.Quit()
wordInstance = Nothing
あ、データを構造体に入れてるのは別の事情があってちょっと。
補足。この方法では、Word自体のオブジェクトが残ってしまい不都合が出る。具体的な回避策については後ほど(COMオブジェクトの解放処理を入れる必要がある)。