• ベストアンサー

エクセルのみで長3封筒に宛名印刷をしたい

エクセルで300件ほどの名簿を作りました。 A…ナンバー(1,2,3…) B…氏名 C…郵便番号 D…住所 こんな感じで下方向に300件ほど入力してあります。 長3封筒横向き、横書きで、エクセルのみを使って1件につき1枚連続印刷したいのですが、マクロを組んだことがなく、どうしたら良いのかわかりません。 -----------------------------------------  〒○○○-○○○○    △△市△△町△-△     □□ □□□ 様 ----------------------------------------- ↑ こんな感じに作りたいんです。 ナンバーの印刷は必要ありません。 勉強不足ですみません。 具体的にどうやって作るのか教えていただけませんでしょうか。 ワードで差込印刷を試みたのですが、余白を0にしても1行目から入力しても、印刷プレビューでは枠内に収まっているのに、なぜか上から5センチほどずれて印刷されてしまい、かっこ悪いし全体が表示されないので使えません。 悩んでしまいました。 なお、会社のセキュリティーの関係でフリーソフトや有料ソフトはダウンロードできません。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

次のように仮定します。 名簿用シート:シート名=List    A    B    C    D     E     F  1  No.  氏名   〒   住所  先頭番号  3  2  1                  最終番号  7  3  2  4  3 封筒印刷用シート:シート名=Print  1.セルA1の文字色を白にします。  2.宛先データを表示する各セル(A1以外)にVLOOKUP関数の数式を入力します。    郵便番号: =VLOOKUP(A1,List!A2:C300,3,0)    住  所: =VLOOKUP(A1,List!A2:D300,4,0)    名  前: =VLOOKUP(A1,List!A2:B300,2,0) マクロ記述  1.[Alt]を押しながらの[F11]で、Visual Basic Editor を開きます。  2.開いたウィンドウの[挿入]から、[標準モジュール]を指定します。  3.標準モジュールに以下を記述して、Visual Basic Editor を閉じます。   ここでは、テスト用に印刷イメージ表示(最後から6行目)にしています。   印刷する場合は、.PrintPreview を .PrintOut に書き換えます。  Sub 印刷開始()   Dim PrintNB, EndNB, FormStyle   Application.ScreenUpdating = False   Worksheets("List").Select    PrintNB = Range("F1").Value    EndNB = Range("F2").Value   Worksheets("Print").Select    Do Until PrintNB > EndNB     Range("A1").Value = PrintNB     ActiveWindow.SelectedSheets.PrintPreview  '印刷イメージ     PrintNB = PrintNB + 1    Loop   Worksheets("List").Select   Application.ScreenUpdating = True  End Sub ボタンにマクロを登録  名簿用シートを開いてフォームツールバーを表示し、"ボタン"を選択してシート内の  任意の位置に描画します。  ここで表示されるマクロの登録画面で、上記マクロを選択して [OK] します。 印刷時は、F1に印刷開始データ番号、F2に最終印刷データ番号(どちらもA列の数字)を 入力してからボタンをクリックします。  

bara-niku
質問者

お礼

すごい!! .PrintPreview での確認のみですが、無事できました!! ありがとうございました。 あーよかったー!本当に助かりました。 マクロってすごく便利ですね。本買って勉強してみます。 あと、質問ですが、上から10行目の『'印刷イメージ』って.PrintOut で印刷を実行するときもこのままでよろしいしょうか? 何のためのものかも教えていただけるとありがたいです。 ネットで検索したのですが、うまく出てきませんでした。

その他の回答 (3)

回答No.4

#3です。 成功なさったようで、よかったですね。 > 上から10行目の『'印刷イメージ』って.PrintOutで印刷を実行するときもこの > ままでよろしいしょうか? そのまま置いておいても影響はありませんが、『'印刷イメージは .PrintPreview』 のようにしておくとよいでしょう。 モジュール内に「'」を書くと、その位置から右は無視されますので、コメント等を 書くときなどに使用できます。 先頭に「'」を置いて、 '印刷処理(以下5行) のような内容の行を書いておくと、コマンドの流れがわかりやすくなりますね。

bara-niku
質問者

お礼

ありがとうございます。 お礼が遅くなり申し訳ございませんでした。 なるほどー!わかりました。 職場でプリントアウトも成功しました。 misatoanna様様です。 今までマクロって自分には敷居が高くて挑戦できなかったんですが、 使えたらすごく便利ですよね! これをきっかけに勉強してみようと思います。 色々ご丁寧に教えていただきありがとうございました。

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.2

この質問重複送信されたようです。ダブってませんか? 早急に1本化の処理を。

bara-niku
質問者

お礼

ご指摘ありがとうございます。 しかし、ダブってはいませんでした。 もしかすると、ワードの差し込み印刷のやり方を聞いた質問のことでしょうか? この質問はエクセルのみでマクロを使った宛名印刷の方法を質問し、 もう一方の質問では、エクセルの名簿を使って、ワードで差し込み印刷をする方法を質問しております。 結果的にやりたいことは同じ(封筒に宛名印刷すること)ですが、 方法が違うので重複してないのではないかと思っています。 当方初心者のため、質問を統一すると回答がごっちゃになってしまいそうなので、このまま2本仕立てで質問を継続いたします。 どちらも読んでいただけたようで嬉しいです。 今後もよろしくお願いします。

  • sayop
  • ベストアンサー率34% (17/49)
回答No.1

ちょっと気になり調べてみました。 エクセルから直接宛名印刷が出来るアドオン(筆まめ)とかあるみたいですが、 >会社のセキュリティーの関係でフリーソフトや有料ソフトはダウンロードできません。 となると、下記リンク掲載のように作るしかなさそうですね。 下記リンクのサンプルファイルを見ましたが、マクロは使わず比較的簡単な関数のみで作られているようです。 入力された住所録データを一度に印刷は関数だけでは厳しそうですが…。まあその場合も簡単なマクロを追加するだけで事済みそうです。 また、私的にはWordよりExcelの方が思い描いた印刷に苦労しています(苦笑)

参考URL:
http://www.kcc.zaq.ne.jp/dfbpl606/atena/
bara-niku
質問者

お礼

ご回答ありがとうございます。 便利なサイトを教えていただきありがとうございました。 sayopさんはワードがお得意なんですね。すごくうらやましいです。 1つ1つ勉強して、ワードもエクセルも使いこなせるようになりたいです。

関連するQ&A

専門家に質問してみよう