EXCELだけで差し込み印刷


 今回は、自作 EXCELマクロの紹介です。最近、仕事で同じ住所録から ラベルプリントや、大きなA4サイズの入る封筒の印刷をすることがあり、適当な差し込み印刷のフリーウェアを探しましたが見つかりませんでした。また、EXCELの住所録データをWordのレイアウトで差し込み印刷するという方法は、MicroSoftの標準として説明されているのですが、斜め読みした感想としては(説明が下手なのか)とても使えない感じでした。
 そこでふと考えたんですが、同じEXCEL上で プリントする用紙に合わせてレイアウトしたシートを準備しておいて、そこに住所録のデータを転記しながら印刷していけば、新しいレイアウトも比較的簡単で印刷イメージも確認しながらレイアウトが行えますから、結構面白いのではないかと考えました。
 何より、思いついたら作ってみないと気が済まない性質なもんで、いろいろ考えずに作り始めました。まぁいつものことで、最初に考えた予想工数と実際に作るのとでは何倍も違ってしまいましたが、何とか形になりました。
 ということで、皆さんにも使ってみていただこうと公開することにしました。

尚、私のページのソフトや情報を利用した場合、方法の如何に関わらず、その結果について私は責を負いかねます。データは必ずバックアップを取ってから利用されるようにお願いいたします。如何なる行為も、利用者個人の責任と適切な判断で行ってください。
 また、当然ながら、この住所録の差し込み印刷には Microsoft Office の Excelが必要となり、マクロを実行することが必要になります。
 また、サンプルの住所、会社名、氏名などは架空のもので実際のものとは一切関係有りません。


<無料サンプルダウンロード>

カスタマイズのご注文もお受けします。
>ここ<をクリックして、表示されるフォームに記入後、「次へ」ボタンを押して
内容確認後にそのページの「送信する」ボタンを押してください。
住所録だけでなく、貴社の業務内容に応じた項目追加などカスタマイズで業務の効率化を図りませんか?


  1. まずは住所録Bookのダウンロード
     この上の<ダウンロード>というボタンを押して、ファイルを自分のパソコンの適当なフォルダーに保存します。
    ダウンロードしたファイルは、いわゆるZIP形式で圧縮されています。Lhaplusなどの解凍ソフトで解凍すると<住所録_差し込み1.xls>と<住所録サンプル.xls>という二つのファイルができます。<住所録_差し込み1.xls>の方が、今回作成したマクロを含んだ差し込み印刷本体です。<住所録サンプル.xls>は、すでに作成されている住所録ファイルから読み込むためのサンプルですので、操作を練習した後は削除しても構いません。この二つのファイルをMy Documentsの中の適当なフォルダーにコピーします。

  2. EXCELで<住所録_差し込み1.xls> というブックを開きます
     EXCEL2003からは初期状態でマクロが使用できない状態になっています。これは、「マクロウイルス」への感染を防ぐためにマクロに対するセキュリティーレベルが「高」に設定されているためです。マクロを使用できる状態にするには、EXCELのメニューから「ツール」→「マクロ」→「セキュリティ」を選び、開く画面でセキュリティーレベルを「中」に設定して、EXCELを一旦終了し再起動します。
     再起動後にこのブックを開くと、通常は以下のような警告が表示されます。

     ここでは「マクロを有効にする」を選択する以外に、この機能を利用できません。
     一通り Avast Home Edition でウィルスチェックはしております。
    (マクロの使用後は、セキュリティーのレベルを「高」に戻しておくのが安全です)
  3. シートの構成

     このブックは、上のようなシートの構成になっています。このマクロはシート番号を使用しているため「住所録」「設定」「葉書」「封筒2」「封筒3」「ラベル」「封筒Free」までのシートは順番を変更しないでください。間に新しいシートを追加したり順番を変更したりすると動作がおかしくなります。新しいシートを追加する場合は「Sheet2」以降のシートを使用してください。
  4. 簡単な使い方
    ほとんどの人が、長い説明書を読まないで操作すると思います。
    この差し込み印刷マクロは、基本的な印刷は以下の手順だけで差し込み印刷ができますので、少しPCに慣れている人なら迷うことはないと思います。
     住所録の入力(「住所録」シート)
     自分の差出人情報の入力(「設定」シート)
     印刷する範囲の入力(「住所録」シート E1/E2セル)
     葉書や封筒など用紙サイズを選択する(「住所録」シート C2セル上)
         A4コピー紙などに試し印刷する
     「印刷」ボタンを押す(「住所録」シート I2セル上)
     レイアウト画面を確認して「OK」を押す

    さらに 上級者向けのこんな使い方も!

     不連続の宛先を印刷する/印刷した宛先にマークを付ける
     印刷前に印刷プレビューを確認する
     1枚1枚確認しないで連続印刷する場合
     印刷位置の微調整
     ラベルシートの印刷
     別のExcelブックから住所録データを取り込む
     新しいレイアウトの追加

  5. 個々の操作の説明
     最初からこのブックに住所録を入力していき、その住所を葉書や封筒の宛先にプリントするのが一番簡単な操作方法です。
    一番上のシート「住所録」の6行目以降に、郵便番号や住所、会社名、氏名など必要なデータを入力します。

    現在の設定では、「住所」・「住所2」に半角スペース(普通のIME設定では Shift+スペース)を入力すると、縦書きの宛名の途中から半角スペース以降の文字の方向が 右90°回転します。例えば番地などを 1-2-34と入力すると、一般の宛名書きソフトの縦書きでは漢数字に変換したりしますが、私の好みでは縦書きの場合もアラビア数字のまま90°回転させた方が読みやすいように思います。倍角のアラビア数字を半角スペースを介さないで入力すると、漢数字に変換します。このあたりは好みなので、そのうちに選択できるように直したいと思います。
     右の図は、「東京都中央区890中央1-2-34」と「中央」と「1-2-34」の間に半角スペースを入力した場合の標準的な縦書きプリントイメージの例です。(現時点では半角スペース以降のアラビア数字以外の漢字なども一緒に回転してしまいます。また半角スペースを2つ以上入力するとそれ以降の文字は印刷されない可能性があります。)

     次に、自分の住所や名前、電話番号など差出人欄に記入する情報を入力します。

     住所を一通り入力したら、試しにプリントしてみます。
     まず、入力した住所録の何行目から何行目までをプリントするのか決めます。

    "E1"セルに、印刷する最初の行番号、"E2"セルに最後の行番号を入力します。このとき、A列のNo.の番号と間違えないようにします。「6」以下の数字が入力されるとエラーになります。

     オプションとして、"E3"と "H3"セルに数字を入力すると幾つかのバリエーションで印刷できますが、これは別途「オプション印刷」で説明します。
     次に、どんなサイズの用紙に印刷するのかを決めます。

    「住所録」シートの上部の「印刷フォーマット」と書かれている下の▼をクリックしてプルダウンリストから印刷フォーマットを選択します。
     現在、レイアウトを標準で用意しているのは「葉書」「封筒2」「封筒3」「ラベル」「封筒Free」の5種類だけです。
    シート名一般名称サイズ備考
    「葉書」葉書100x150普通の官製はがき・年賀状サイズ
    「封筒2」長形3号封筒120×235A4用紙を3つ折りで入れる大きめの封筒
    「封筒3」長形5号封筒90×185普通の手紙用封筒
    標準設定では宛名、差出人が横書きになっている
    「封筒Free」角型2号封筒240×332A4用紙を折らずに入れる大きな封筒
    A4サイズプリンタではプリントできない
    「ラベル」A4サイズで12枚のラベルが印刷できる標準ラベルサイズ


     初めて印刷するときは、"H1"セルのテスト印刷に「1」を入力してからプリントするのがいいと思います。

    ほぼ最大印刷範囲(上下左右の余白を除いた範囲)にグレーの点線で印刷範囲がプリントされますので、葉書などのプリントでもA4用紙に試しでプリントして、実際の葉書のレイアウトイメージがつかめます。

    最後に、「印刷」ボタンを押します。

     印刷範囲を確認するダイヤログが表示されます。

     印刷を指定した行の最初の印刷レイアウトが表示されます。
    「はい」で通常使うプリンタからプリントされます。
    「いいえ」では、このプリントはされずに、次のプリントに進みます。
    「キャンセル」を押すと、マクロの実行は終了し、再度「印刷」ボタンを押さないとプリントは始まりません。

     全ての印刷が終了すると、最後に「レイアウトを保存しますか?」という問い合わせメッセージが表示されます。
    もし文字枠や文字の方向などのレイアウトを印刷前に意図的に変えて、それを今後も使うのであれば「OK」を押します。変更した場合以外は「キャンセル」を押します。(OKを押しても、変更してなければ保存される値は変わりませんが)
  6. オプション印刷:それ以外の使い方
     不連続の宛先を印刷する/印刷した宛先にマークを付ける。

     オプションとして、"E3"と "H3"セルに数字を入力すると幾つかのバリエーションで印刷できます。
    E3セル: チェック年度(L列~N列)の数値を記入します。記入した年度の印刷した宛先には"レ"点が記入されます。
    H3セル: 「1」を入力しておき、さらに E3セルに入力したチェック年度の幾つかの宛先に「1」を入力しておいてから印刷を実行すると、「1」が入力されている宛先だけが印刷され、空欄の宛先は印刷されません。
    また、印刷した宛先の「1」は"レ"に書き換えられます。

    ほとんど全部の宛先を印刷したいけれど、途中に幾つか印刷を飛ばしたい宛先がある場合は、例えばチェック年度 E3セルに「09」「10」「11」(現在のバージョンはこの3つだけ)のどれかを入力し、"H3"セルに「1」を、そして対応した年度の列の住所録のプリントしたい行だけに「1」を入力しておくと(実際には最初の宛先に「1」と入力してからそのセルをクリックして選択しておいて、そのセルの右下にカーソルを合わせてマウスの左ボタンを押したまま下の方にドラッグしてオートフィルですべてのセルに「1」を記入してから、不要なセルだけ1を削除します。)「1」の行だけが印刷されますので、飛び飛びに印刷する場合は便利です。

    E3セルのチェック年度だけを記入して、H3セルは空の状態で「印刷」ボタンを押すとチェック年度のセルの値に関係なく、指定した開始行~終了行の間の宛先すべての印刷が行われます。また、印刷した宛先のチェック年度のセルに"レ"点が記入されます。(「印刷しますか」の問い合わせに「いいえ」で印刷を中止した宛先には、右のような問い合わせが表示され 「はい」を選択すると"レ"点が付きません。「いいえ」を選択すると「1」が残ったままになります。)
    但し、現時点では上記の記入文字「1」は実際には空欄以外なら何でも同じ動作になります。

     印刷前に印刷プレビューを確認する場合

     1枚ずつ印刷を確認したい場合は、各シートの右のほうにある V16セル:プリントプレビューに「1」を記入してから「印刷」ボタンを押します。こうすると印刷前にプリントプレビュー画面が表示され、より正確な印刷イメージの確認が行えます。


    プリントプレビューが表示されたら、ここで印刷ボタンを押しても印刷が行えますが、印刷済みを示す"レ"点などの記入が行われません。ここでは一旦「印刷プレビューを閉じる」を押してその後の問い合わせに「はい」を押して印刷します。
     連続印刷する場合
    ⑧の説明と同じ場所にある V15セル:連続印刷 に「1」を記入してから「印刷」ボタンを押します。
    最初の印刷時だけ、右のような確認が表示され、「はい」をクリックすると以降は確認のダイヤログは表示されずに、連続で印刷されます。
    ⑩ 印刷位置の微調整 たとえば年賀状のように、すでに郵便番号枠が印刷されている場合は印刷位置がかなりシビアーです。数字が枠の真ん中に来ない場合は、各シートの V3 V4セルの 上マージン/左マージンを調節して合わせます。
    また、枠を印刷しないためには V5セルの〒番号枠色の数字を 「0」にすると枠は印刷されません。
    ⑪ ラベルシート印刷
    (だんだん説明が雑になっているのが自分でも分かるんですが)
     ラベルシートの差し込み印刷は、レイアウトも12宛先/1シートと大きく異なるため、全く別のルーチンとなっています。ただ、操作はそれほど複雑でないので、印刷開始行・終了行を入力して「印刷」ボタンを押してみてください。「ラベル」シートに結果が反映されます。そのシートを通常通り印刷すればOKです。・・・ってかなり手抜き!
     別のExcelブックから 住所録データを取り込む。
     普通の場合、すでに住所録を作成しており、それを使って差し込み印刷したいというケースが多いと思います。その場合は 「設定」シート(2枚目)の中段 E11 セルに 取り込み元のブック名(ファイル名)、E12 セルにそのブックの住所録が記録されているシート名、E13 セルに 取り込みをする一番最初の行番号、G13 セルに最後の行番号を記入し、
    E14 セルには、このブックの「住所録」シートの貼り付ける行番号を入力します。

    次に、19行(黄色い行)に、取り込み元の住所録の項目(見出し)セルを貼り付けて、その項目名と17行のこのブックの項目名とを見比べて、18行目に対応する列名を記入していきます。
    初期状態ではすでにこの列名は記入されていますが、これは同梱されているサンプルファイルを取り込む場合の例です。(理解できたら18行、19行は削除して新しいブックの項目名を貼り付けます)対応する列をすべて記入したら、その上の「テータ取り込み開始」ボタンを押します。

    データの取り込みを確認するダイヤログが表示され、「OK」ボタンを押すと取り込みを開始します。





    名前データの入力されている行に貼り付けようとすると警告が表示され取り込めません。上書きしたければ、貼り付ける行以下はすべてのデータを一旦削除してからボタンを押します。




    正常に終了すれば、完了のダイヤログが表示されます。
  7.  新しいレイアウトの追加
    添付されているレイアウトシート以外のレイアウトで印刷したい場合、簡単なのは一番近いレイアウトのシートをコピーして修正することだと思います。コピーしたシートを「封筒Free」の後ろにして、シートに分かりやすい名前を付けて、その名前を「設定」シートの A7セルに記入すれば選択できるようになるはずです(確かめていませんが)。
  8. 今後の改善予定
     フォント名が反映されないバグの修正
     レイアウトパラメータの適正化
     別ブックのデータを取り込まないで、直接差し込み印刷
     VBAのマクロではなく、独立したVBで記述したアプリケーション化
    などを考えています。
    もしお使いいただいて、気づいたバグや要望がありましたら掲示板もしくは管理人宛てメールでお知らせ頂ければ幸甚です。

このページのトップへ