プロが教える店舗&オフィスのセキュリティ対策術

エクセルで300件ほどの名簿を作りました。

A…ナンバー(1,2,3…)
B…氏名
C…郵便番号
D…住所

こんな感じで下方向に300件ほど入力してあります。

長3封筒横向き、横書きで、エクセルのみを使って1件につき1枚連続印刷したいのですが、マクロを組んだことがなく、どうしたら良いのかわかりません。

-----------------------------------------
 〒○○○-○○○○
   △△市△△町△-△
    □□ □□□ 様

-----------------------------------------

こんな感じに作りたいんです。
ナンバーの印刷は必要ありません。

勉強不足ですみません。
具体的にどうやって作るのか教えていただけませんでしょうか。

ワードで差込印刷を試みたのですが、余白を0にしても1行目から入力しても、印刷プレビューでは枠内に収まっているのに、なぜか上から5センチほどずれて印刷されてしまい、かっこ悪いし全体が表示されないので使えません。

悩んでしまいました。

なお、会社のセキュリティーの関係でフリーソフトや有料ソフトはダウンロードできません。

よろしくお願いします。

A 回答 (4件)

次のように仮定します。



名簿用シート:シート名=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列の数字)を
入力してからボタンをクリックします。
 
    • good
    • 9
この回答へのお礼

すごい!! .PrintPreview での確認のみですが、無事できました!!
ありがとうございました。
あーよかったー!本当に助かりました。
マクロってすごく便利ですね。本買って勉強してみます。

あと、質問ですが、上から10行目の『'印刷イメージ』って.PrintOut で印刷を実行するときもこのままでよろしいしょうか?

何のためのものかも教えていただけるとありがたいです。
ネットで検索したのですが、うまく出てきませんでした。

お礼日時:2008/10/26 01:14

#3です。


成功なさったようで、よかったですね。

> 上から10行目の『'印刷イメージ』って.PrintOutで印刷を実行するときもこの
> ままでよろしいしょうか?

そのまま置いておいても影響はありませんが、『'印刷イメージは .PrintPreview』
のようにしておくとよいでしょう。

モジュール内に「'」を書くと、その位置から右は無視されますので、コメント等を
書くときなどに使用できます。
先頭に「'」を置いて、
'印刷処理(以下5行)
のような内容の行を書いておくと、コマンドの流れがわかりやすくなりますね。
    • good
    • 2
この回答へのお礼

ありがとうございます。
お礼が遅くなり申し訳ございませんでした。

なるほどー!わかりました。

職場でプリントアウトも成功しました。
misatoanna様様です。

今までマクロって自分には敷居が高くて挑戦できなかったんですが、
使えたらすごく便利ですよね!

これをきっかけに勉強してみようと思います。

色々ご丁寧に教えていただきありがとうございました。

お礼日時:2008/10/29 16:44

この質問重複送信されたようです。

ダブってませんか?
早急に1本化の処理を。
    • good
    • 2
この回答へのお礼

ご指摘ありがとうございます。

しかし、ダブってはいませんでした。
もしかすると、ワードの差し込み印刷のやり方を聞いた質問のことでしょうか?

この質問はエクセルのみでマクロを使った宛名印刷の方法を質問し、
もう一方の質問では、エクセルの名簿を使って、ワードで差し込み印刷をする方法を質問しております。

結果的にやりたいことは同じ(封筒に宛名印刷すること)ですが、
方法が違うので重複してないのではないかと思っています。

当方初心者のため、質問を統一すると回答がごっちゃになってしまいそうなので、このまま2本仕立てで質問を継続いたします。

どちらも読んでいただけたようで嬉しいです。
今後もよろしくお願いします。

お礼日時:2008/10/25 23:57

ちょっと気になり調べてみました。



エクセルから直接宛名印刷が出来るアドオン(筆まめ)とかあるみたいですが、

>会社のセキュリティーの関係でフリーソフトや有料ソフトはダウンロードできません。

となると、下記リンク掲載のように作るしかなさそうですね。
下記リンクのサンプルファイルを見ましたが、マクロは使わず比較的簡単な関数のみで作られているようです。
入力された住所録データを一度に印刷は関数だけでは厳しそうですが…。まあその場合も簡単なマクロを追加するだけで事済みそうです。

また、私的にはWordよりExcelの方が思い描いた印刷に苦労しています(苦笑)

参考URL:http://www.kcc.zaq.ne.jp/dfbpl606/atena/
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

便利なサイトを教えていただきありがとうございました。

sayopさんはワードがお得意なんですね。すごくうらやましいです。
1つ1つ勉強して、ワードもエクセルも使いこなせるようになりたいです。

お礼日時:2008/10/26 00:04

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています