- ベストアンサー
ワードの差し込み印刷について
ワード3ページに渡る差しこみ印刷について質問です。職場の前任者から引き継いだファイルにワード3ページに渡って差し込み印刷が施してある文書がありました。差し込み元は1枚のエクセルシートだったんですが、前任者がどうやってこれを作ったのかが分かりません。ワード3ページに1枚のエクセルシートのデータをそれぞれ配分したものでした。前任者はこれをどう作成したのでしょうか?エクセルシートのそれぞれに範囲指定して名前を付けてみましたが、ワード1枚目に続いて2枚目に2番目のデータを入れると3枚全てに反映されてしまい上手くいきませんでした。ご存知の方の教示をお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
質問後、随分日が経っていますが、最近、別の質問のための勉強していて、その関連で下記を参考に記してみます。 WordVBAでの説明ですが、 推測するに下記を、VBAでなく、多分リボンかメニューをたどり、手作業で、前任者はやったのではないでしょうか。 普通は改ページを入れない例の説明が多いのですが、レター文書なら複数ページもあるだろうし、別々のページに、狙った箇所に、差し込み印刷フィールドを使う人もいるかもしれない。 本例では2ぺージの例で簡略化して説明。 (A)下記を実行すると、「同一ページ」に、差し込みフィールドが 氏名 年齢 住所 と並びます。 ーー Sub test01() ActiveDocument.MailMerge.Fields.Add Range:=Selection.Range, Name:="氏名" Selection.TypeText vbCrLf ActiveDocument.MailMerge.Fields.Add Range:=Selection.Range, Name:="年齢" Selection.TypeText vbCrLf ActiveDocument.MailMerge.Fields.Add Range:=Selection.Range, Name:="住所" End Sub ーーー (B)次に、下記を上記とは別の、新しい文書で実行すると、 氏名 改ページ線 年齢 住所 と、印刷すると、2ぺージなります Sub test03() ActiveDocument.MailMerge.Fields.Add Range:=Selection.Range, Name:="氏名" Selection.TypeText vbCrLf Selection.InsertBreak Type:=wdPageBreak <==改ページが入った ActiveDocument.MailMerge.Fields.Add Range:=Selection.Range, Name:="年齢" Selection.TypeText vbCrLf ActiveDocument.MailMerge.Fields.Add Range:=Selection.Range, Name:="住所" End Sub ーーー ここで、エクセルのデータ差し込みのため 下記を実行すると 差し込み印刷のVBAですが、 ub test02() strXlsFileName = "C:\Users\xxx\Documents\差し込み印刷例180420.xlsm" 'Excelファイル名を設定 strXlsWorksheetName = "Sheet1" strSQL = "SELECT * FROM [" & strXlsWorksheetName & "$]" 'strSQL = strSQL & "WHERE [性別] LIKE '男'" Set objDoc = ActiveDocument With objDoc.MailMerge .OpenDataSource Name:=strXlsFileName, SQLSTATEMENT:=strSQL .ViewMailMergeFieldCodes = False End With End Sub ーー (A)の場合は、1ページに 近藤 三郎 34 千葉市 となり、1ページに納まり印刷される。 (B)の場合は 近藤 三郎 改ページ 34 千葉市 となり、2ページに分けて印刷される。 ーー なお エクセルのデータはSheet1の 第1行目は、A-C列は 氏名 年齢 住所 近藤三郎 34 千葉市 のように作って、差し込み印刷を実行してます。
その他の回答 (1)
- bunjii
- ベストアンサー率43% (3589/8249)
>職場の前任者から引き継いだファイルにワード3ページに渡って差し込み印刷が施してある文書がありました。差し込み元は1枚のエクセルシートだったんですが、前任者がどうやってこれを作ったのかが分かりません。 知りたかったら前任者に聞いてください。 ワードのファイルと差し込みデータのエクセルシートを見なければ分からないことなので社外秘でしょうから第三者に見せられないでしょう。 >エクセルシートのそれぞれに範囲指定して名前を付けてみましたが、ワード1枚目に続いて2枚目に2番目のデータを入れると3枚全てに反映されてしまい上手くいきませんでした。 仕事で使う資料の作成では自習して解決するか上司や先輩に指導を仰ぐのが基本です。 質問の内容からは応用力が低い方のように見えますので例題を見ても自分がやりたいことに結びつかないと思います。
お礼
返信ありがとうございました。参考にさせていただきます。
お礼
回答ありがとうございます。返信が遅れて申し訳ありませんでした。私自身はVBAの知識もなく、回答者様が教示してくださったマクロ文書の理解もできないレベルなんですが、おそらく前任者も手作業で行ったと思われます。もう一度差し込み文書をよく見てみようと思います。ありがとうございました。