エクセル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)で処理しようと考えると複雑になります。
今日は、来客があるので、ここまでにします。
『飲んだら書くな、書くなら飲むな!!』