前に差し込み印刷で個別のファイルに差し込む方法という記事を書いたのですが、A-Feさんから上手い方法を教えていただいたので、後半部分のコードを少し書き換えてみました。
Function 個別保存(num)
Const savedir = "D:\Data"
'差込実行、Wordファイルを作成
With ActiveDocument.MailMerge
.Destination = wdSendToNewDocument
.SuppressBlankLines = True
.DataSource.FirstRecord = num
.DataSource.LastRecord = num
.DataSource.ActiveRecord = num
fn = .DataSource.DataFields.Item([フィールド名])
.Execute
End With
'作成されたWordファイルを保存
ActiveDocument.SaveAs FileName:=savedir & fn, FileFormat:=wdFormatDocument
ActiveWindow.Close
End Function
Const savedir = "D:\Data"
'差込実行、Wordファイルを作成
With ActiveDocument.MailMerge
.Destination = wdSendToNewDocument
.SuppressBlankLines = True
.DataSource.FirstRecord = num
.DataSource.LastRecord = num
.DataSource.ActiveRecord = num
fn = .DataSource.DataFields.Item([フィールド名])
.Execute
End With
'作成されたWordファイルを保存
ActiveDocument.SaveAs FileName:=savedir & fn, FileFormat:=wdFormatDocument
ActiveWindow.Close
End Function
「.DataSource.ActiveRecord = num」と「.DataSource.DataFields.Item([フィールド名])」の部分。
このように書くと、フィールド名を指定することで現在、差し込んでいるデータの必要な部分を直に抜き出すことができます。
以前はこれができずに、差し込んだ後の文書から欲しい部分を探し出すコードをわざわざ書いていました。
A-Feさん、ありがとうございました。
コメント
[…] 改良版について書きましたので、そちらもあわせてお読みください。 You Look Too Cool » 差し込み印刷で個別のファイルに差し込む方法-改良版 […]
はじめまして。
ワードの差し込み印刷とPDF保存で検索していてこのページにたどり着きました。
公開して頂いているマクロを試してみたのですが、指定したフォルダに保存できません。
Cドライブ直下やデスクトップを指定してみてもだめです。
恐らく指定場所を無視して前回ワードファイル保存した場所に保存されていると思われます。
マクロの知識が全くないのですが、どのような問題または解決策があるかおわかりでしょうか?
宜しくお願い致します。
>マクロ検索中さん
ちょっと考えてみましたが原因が分かりませんでした。
旧バージョンでもダメでしょうか。
http://stabucky.com/wp/archives/1073