プロが教えるわが家の防犯対策術!

送付先毎に内容が異なる通知文を1000通作成する為に、まずExcelでテーブルを作り、Wordで差込用の文書を作り、Excelのデータを取り込むところまではやりましたが、これでは全て1つのファイルになってしまいます。(1件あたり3ページの通知なので3000ページの1Wordファイル)
これを、差し込んだ後宛先毎に全て別のファイルとして(1000個のWordファイル)保存する方法はありませんでしょうか?
作成した通知文を各送付先毎のフォルダに分けて保存しなくてはならない為、必須事項なんです。
なんとか自動的に行いたいと思っています。
また、もし可能だった場合、各ファイル名はどんな形で割り当てられるのか・・・?
出来ればファイル名は顧客コード(Excelのデータテーブルには情報があります)で一発で保存できたら幸いです。
お知恵を下さい。どうぞよろしくお願いします。

教えて!goo グレード

A 回答 (3件)

以前、同様の処理をマクロを使って行いました。


WordのVBAを良く理解せずに作ってますので、あまりスマートではありませんが事は足りました。

差し込みメイン文書(事前に差し込み設定して保存した物)に下記マクロを仕込んで実行すると、メイン文書と同じフォルダに指定したフィールド値(例では4番目)で保存します。
試す場合はテスト環境で。

Sub Test1()
Dim i As Long, LRec As Long
With ThisDocument.MailMerge
  .DataSource.ActiveRecord = wdLastRecord
   LRec = .DataSource.ActiveRecord
  For i = 1 To LRec
   .Destination = wdSendToNewDocument
   .SuppressBlankLines = True
   .DataSource.FirstRecord = i
   .DataSource.LastRecord = i
   .DataSource.ActiveRecord = i
   .Execute Pause:=True
    ActiveDocument.SaveAs ThisDocument.Path & "\" & _
    .DataSource.DataFields(4).Value & ".doc", wdFormatDocument
          'ファイル名に使うフィールド(例では4番目)
    ActiveDocument.Close
  Next i
End With
End Sub

この回答への補足

早速のご回答ありがとうございます。
もう、わらにもすがる思いです。一度ご経験がおありという事ですから心強いです!
私自身がVBAを理解していないので手ほどきを頂けませんでしょうか?
やった作業を書き留めます。
「差込テンプレート.doc」に「差込データ.xls」を差込み、
「ツール」→「Visual Basic Editor」の「This Document」に
Sub Test1()
Dim i As Long, LRec As Long
With ThisDocument.MailMerge
  .DataSource.ActiveRecord = wdLastRecord
   LRec = .DataSource.ActiveRecord
  For i = 1 To LRec
   .Destination = wdSendToNewDocument
   .SuppressBlankLines = True
   .DataSource.FirstRecord = i
   .DataSource.LastRecord = i
   .DataSource.ActiveRecord = i
   .Execute Pause:=True
    ActiveDocument.SaveAs ThisDocument.Path & "\" & _
    .DataSource.DataFields(4).Value & ".doc", wdFormatDocument
    ActiveDocument.Close
  Next i
End With
End Sub
と書いて「×」で閉じる。
マクロの実行をしましたが、『このマクロは無効に設定されています・・・』といったメッセージが立ち上がり、何も実行されません。
(果たしてこの手順でよいのかも疑問なのですが・・・)
セキュリティレベルも下げて見ましたがうまくいかないのですが、
手順を今一度ご教示頂けませんでしょうかか?素人で本当に申し訳ございません。。。
どうぞよろしくお願いいたします。

補足日時:2007/08/07 00:27
    • good
    • 0

#2です。


標準モジュールに書く方が普通かも知れませんが、該当文書のThisDocumentモジュールでも問題ありません。

>『このマクロは無効に設定されています・・・』といったメッセージが

セキュリティレベルを「中」にした状態でWordを起動し、その後、該当ファイルを開けば「マクロ有効にしますか?」のような確認が出ると思います。
そこで「マクロ有効」にして開けば実行出来ると思いますが、、、

実行時に同じフォルダ内に同名ファイルがあった場合の上書きチェック等は特にしてませんので、試す場合はご注意下さい。
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございます。
ご指定の通り試したところ、分割できました。
本当に助かりました。
何度もお知恵をお借りして恐縮です。
ご協力ありがとうございました!

お礼日時:2007/08/14 02:32

データのところで臨時にたとえば200件ずつならば200件分のファイルを作っておいて差込をし、終わったら削除するようにしたらいいですよ。

この回答への補足

早速のご回答ありがとうございます。
自動処理が出来ない場合は、マニュアルでこまめにやるしかないのかもしれませんね。
参考にさせて頂きます。
ありがとうございました。

補足日時:2007/08/07 00:28
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

教えて!goo グレード

このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング