連続印刷用の項目を追加する
まず、住所リストに、連続印刷させたい住所データを指定するための項目を追加します。この項目に「1」を入力した行の住所データを、連続印刷の対象データとすることにします。入力するVBAプログラム
VBEを起動して、次のVBAプログラムを入力します。IFステートメントやFor Nextステートメントなど、これまで紹介してきた学習ポイントがギュッと詰まったプロシージャになっていますね。ポイントは2つあります。1つ目のポイントは、5行目のステートメントです。住所リスト全体をセル範囲名で参照し、「すべての行をRowsプロパティで参照」→「その行数をCountプロパティで取得」といった手順で住所リスト全体の行数を取得して、タイトル行分の「2」を加えています。これで、住所リストの最終行の行番号が算出されます。
2つ目のポイントは9行目のステートメントです。左辺は「.(ピリオド)」に続けてセル参照を記述しているので、Withステートメントの記述より、ワークシート「印刷画面」上のセルを参照しています。一方、右辺のセル参照では「.(ピリオド)」を記述していないので、4行目のステートメントで選択したワークシート「住所リスト」上のセルを参照しています。
実行ボタンを作成しよう
最後に、住所リスト上に印刷ボタンを作成して、入力したVBAプログラムを登録します。詳しい手順は、記事「作成したマクロをボタンに登録してみよう!」をご覧下さい。改良ポイント
これで、ハガキの宛名面を作成するExcelブックが完成しました。とはいえ、2回分の記事で収まる内容でまとめたので、まだまだ改良の余地があります。たとえば、次のような内容です。ぜひ、挑戦してみて下さい。●印刷対象データを指定する「出力」項目の入力チェック
→印刷対象データが1件も指定されていない場合はメッセージを表示する
●印刷画面上のNo入力チェック
→Noが未入力だったらメッセージを表示する
●敬称(様や御中)の自動入力
→住所リストの各氏名データへの敬称入力は不要にする
●住所や氏名が縮小表示になった場合のフォントサイズの統一
→フォントサイズがマチマチにならないように制御する
●連名表示の制御
→連名表示したい氏名データへの空白入力は不要にする
●住所データ追加時の関数入力
→住所データが追加されたとき、必要な関数を自動入力する
→併せて、セル範囲名の再設定も必要
●縦書きタイプの印刷画面の作成