2010年1月21日木曜日

Excel+Word差し込み印刷覚え書き

案内葉書の宛名だとか、研究会などの領収書を作るとき、ExcelなりAccessなりでデータを作っておいてWordの文面に流し込む、いわゆる「差し込み印刷」は結構便利。

ただし、使い方をきちんと把握してないと差し込み漏れが起きたり、変なページが大量に印刷されて紙が無駄になる。で実際にトラブったので、未来の自分のために覚え書きを残しておく。

今回は領収書を差し込み印刷で作ろうとしてトラブったのだが、流れは以下の通り。

1. テンプレート文書の用意

Microsoft Office Onlineから、Word用の領収書テンプレートをダウンロード。紙を節約したいということもあり、A4の1ページに4枚印刷できるものを選択。このテンプレートを使って新規の文書を作成。

2. 差し込むデータソースの選択

Word2007の場合、「差し込み文書」メニューの中にある、「宛先の選択」で「既存のリストを使用」を選択すると、ExcelやAccessといったデータソースを選択するダイアログが表示される。今回の場合は、ここで所定のデータが含まれているExcelファイルを選択。この後、条件を指定して(あるいは手動で)差し込みデータを絞り込むことも可能。

3. 差し込みフィールドの挿入

データソースの各フィールド(宛先・金額・但し書きなど。Excelでは各列というべきか)は対応する差し込みフィールドに埋め込まれる。ダウンロードしたテンプレートそのものには差し込みフィールドが無いので、フィールドを今作った文書に埋め込む。Word 2007の場合、上記と同じ「差し込み文書」メニューに「差し込みフィールドの挿入」があり、これを押すとデータソース中の各フィールドが表示されるので、例えば宛名なら宛名を差し込むべき位置にテキストカーソルを持って行った状態で「宛名」を選択する。そうすると文書上に≪宛名≫という表示が現れる。

本当に差し込まれるかどうかを確認するには、「結果のプレビュー」を押す。データソースの各フィールドが、差し込みフィールドの位置に埋め込まれた状態で画面表示される。これ自体は文書に影響を与えない(もう一度プレビューボタンを押すと元に戻る)。

ここではまった点が2つ。第1に、1ページに1データであれば問題無いのだが、今回のように1ページに4データを差し込む必要がある場合、ページの途中で「次のデータに進む」ことを明示しないといけない。これには、「ルール」のひとつであるNext Recordというものを領収書の切り替わりの場所に埋め込めばよい。ルールもメニューから選択でき、≪Next Record≫という形で画面上に現れる。

ここで、いい気になってすべての領収書の最後に≪Next Record≫ルールを入れてしまったのが間違い。ちょっと冷静になれば分かることだが、元々1ページごとに自動的に次のレコードに進むのだから、1ページ中の「最後の領収書」には≪Next Record≫を書く必要がない。というか、書くと誤ってレコードを1つ飛ばしてしまうのだ。今回は1ページ4レコードずつなので、(4n+1)番目のレコードが全部印刷されない、という結果になってしまった。

はまった点その2。使用したテンプレートでは、額面を表示する部分のデザインを良くするためにテキストボックスを使っている。ところが、ここに額面の差し込みフィールドを指定すると、そこだけは各レコードごとの額面が反映されず、何故か特定のレコードの額面が繰り返し表示されてしまう。

たぶん1つのページにおいて、テキストボックス中の差し込みフィールドが参照される順番が(画面上の見た目と異なっていて)特殊なんだと思うのだけど、具体的にどうすれば修正できるのかはまだ分かっていない。テキストボックスの代わりにレイアウト枠というのを使うとうまく行くという話もあるが、使用したテンプレート中のテキストボックスを直接レイアウト枠に変換すると、領収書自体のレイアウトがガタガタに崩れてしまう。修正するのも面倒なので、まだ検証はしていない。

以上、備忘録。

0 件のコメント:

コメントを投稿

英語配列のノートPCで日本語配列設定にしちゃった時に、アンダースコアを入力するTips

US配列のLG gram SuperSlimを購入した。で、Windowsの初期セットアップを始めたところ、最初に選択できるキー配列はMicrosoft IME(まあ要するに日本語配列)だけ。で、その後に「追加のキー配列」を選択できるのだが、後でやればいいやと思ってスルーしてしま...