エクセルVBA(宛名の連続印刷) で作成した住所録のあるファイルに

シートを一枚追加します。

以下は、一例ですので、印刷レイアウトなど状況に合わせて編集してください。

2*4のラベルシートで説明します。

1、準備です。

  F列に 0 を7行分、次に 2 を7行分、同様に 4を7行、6を7行

  G列に 1 を7行分、次に  3  を7行分、同様に  5を7行、7を7行

  E1セルに 2 と入れておいて

  H1セルに =$E$1+F1 I1セルに =$E$1+G1 と入れて下までコピーすると

  2、3

  4,5

・・・・と表示される事を確認

  E1セルに 10 と入れると

10,11

・・・・と表示される事を確認

 

2、ここで、B列、C列にラベル印刷に必要な住所などを表示させる関数を考えます。

 エクセル豆知識(Vlookup関数) でVlookup関数を使いましたが、ここではIndex関数を使います。

 B1セルに =INDEX(住所録!$B:$B,H1)&""

 B2セルに  =INDEX(住所録!$C$CH2)&""

 B3セルに  =INDEX(住所録!$D:$D,H3)&""

 B4セルに =INDEX(住所録!$A:$A,H4)&""

・・・と2行目の会社名、住所などが表示されるように関数を入れます。

 Index関数は Index(表示する列,行番号) と取りあえず覚えておいてください。

 H1セルは 2ですので、=INDEX(住所録!$B:$B,H1) は、住所録のB列の2行目です。

 最後に &"" を追加しているのは、空白の際に 0 と表示されるのを

 空白表示する手法です。

 B1~B6までを、コピー、C1に貼付け

 B1~C6までを、コピー、B7に貼付け

 同様に、B13に貼付け、B19に貼付けすれば、印刷したいラベル一覧が出来ます。

 あとは、印刷範囲を指定して、印刷プレビューでラベルに入るか確認してみましょう。

 不要な行は削除していただいても構いません、

 最後に、E1セルに 10 を入れてみましょう。次に住所が表示されます。

 次に、18 と 8飛びに数値を入れていけば順次表示されていきます。

 F~I列の様に、関数を簡単にするために準備した列を「作業列」と呼びます。

3、印刷のマクロボタンの配置

 感の良い方は、既にひらめかれたでしょう。

 E1セルに、2,10,18と8飛びの数値が順に入って印刷するマクロです。

 ボタンを配置

 Sub ボタン3_Click()
For i = 2 To Sheets("Sheet2").Range("A" & Rows.Count).End(xlUp).Row Step 8
  Range("E1").Value = i
  ActiveSheet.PrintPreview
 Next
End Sub
では、如何でしょうか。わずか4行です。

 For の最後にある Step 8 は i を 8飛びに増やす意味です。

 

良く考えたら簡単ですよね。覚えてほしいことが一つ

「エクセルの機能、関数、マクロ を効率よく使いましょう」

全てをマクロ(VBA)で処理しようと考えると複雑になります。

 

 今日は、来客があるので、ここまでにします。

『飲んだら書くな、書くなら飲むな!!』