excel VBAを利用し、テンプレートとなるワードファイルの一部分を
excel VBAを利用し、テンプレートとなるワードファイルの一部分をエクセルデータで
置換を行い、新しいワードファイルとして保存するという処理を作成しています。
[環境]
Windows Vista
Office 2007
差し込み文書ではなく個別にファイルを作りたいという条件があります。
処理としては、
テンプレートを開く→置換を実施→別名で保存→テンプレートを変更せず閉じる
を繰り返し実施しています。
ただ、このやり方ですと最後の閉じる処理を行った際に、
「wordは、動作を停止しました」というエラーメッセージが頻繁に出てしまいます。
出来上がったファイル自体は問題なく読めているんですが。
処理自体に問題があるんでしょうか?
VBA自体初心者であり、他に良い方法などありましたらご教示いただけたら助かります。
#処理内容はだいぶ簡略化しています。
Public Function output_word2()
Dim word As New word.Application
Dim document As word.document
Dim file_name As String
Dim output As String
Dim path As String
Dim row As Integer
Sheets(CALC_SHEET).Select 'データ取得用シート
path = Application.ActiveWorkbook.path
file_name = path & "\xxxxxx.doc" '元の文書
row = 3
Do
If Range("B" & row).Value = "" Then
Exit Do
End If
With word
.Documents.Open Filename:=file_name
Set document = .ActiveDocument
End With
word.Selection.Find.Text = "{置換対象文字}"
word.Selection.Find.Forward = True
word.Selection.Find.Replacement.Text = Range("C" & row).Value
word.Selection.Find.Execute , , , , , , , , , , wdReplaceAll
output = path & "\output\" & Range("C" & row).Value & ".doc"
document.SaveAs Filename:=output '置換後のword文書を別名で保存
document.Close SaveChanges:=False
word.Quit
row = row + 1
Set word = Nothing
Set document = Nothing
Loop
End Function