ラベルシールを途中から印刷する

スポンサーリンク
この記事は約7分で読めます。

今日のネタは、ちょっとケチケチした内容です。

封筒やハガキのあて名書きをするとき、直接印刷せずにラベルシールに印刷してから貼り付けている方に向けた記事です。

ラベルシールって、8面とか12面とか印刷できるようになっているのですが、印刷するたびに余りますよね。

そんなとき、どうしてますか?

住所を一面だけ印刷して、あと11面余っているラベルシール。捨てられませんよね。

今日は、この余ってしまうラベルシールを有効活用する方法をご紹介します。

ただし、ラベルシールメーカーの立場から言うと、プリンター内で詰まるなどの不具合の原因になる恐れがあるそうですから、自己責任でお願いします。

スポンサーリンク

住所録テーブルを作る

まず、住所録のテーブルを作ります。公開されている住所ということで、都道府県庁の住所を使うことにしました。

JLIS 都道府県庁

テーブル名は、「住所録」です。

フィールド名データ型
都道府県コード短いテキスト(フィールドサイズ2)
郵便番号短いテキスト(フィールドサイズ7)
住所短いテキスト(フィールドサイズ255)
宛名短いテキスト(フィールドサイズ255)

住所録テーブルのデータ(2020年1月31日現在)

都道府県コード郵便番号住所宛名
010608588札幌市中央区北3条西6-1北海道庁
020308570青森市長島1-1-1青森県庁
030208570盛岡市内丸10-1岩手県庁
049808570仙台市青葉区本町3-8-1宮城県庁
050108570秋田市山王4-1-1秋田県庁
069908570山形市松波2-8-1山形県庁
079608670福島市杉妻町2-16福島県庁
083108555水戸市笠原町978-6茨城県庁
093208501宇都宮市塙田1-1-20栃木県庁
103718570前橋市大手町1-1-1群馬県庁
113309301さいたま市浦和区高砂3-15-1埼玉県庁
122608667千葉市中央区市場町1-1千葉県庁
131638001新宿区西新宿2-8-1東京都庁
142318588横浜市中区日本大通1神奈川県庁
159508570新潟市中央区新光町4-1新潟県庁
169308501富山市新総曲輪1-7富山県庁
179208580金沢市鞍月1-1石川県庁
189108580福井市大手3-17-1福井県庁
194008501甲府市丸の内1-6-1山梨県庁
203808570長野市大字南長野字幅下692-2長野県庁
215008570岐阜市藪田南2-1-1岐阜県庁
224208601静岡市葵区追手町9-6静岡県庁
234608501名古屋市中区三の丸3-1-2愛知県庁
245148570津市広明町13三重県庁
255208577大津市京町4-1-1滋賀県庁
266028570京都市上京区下立売通新町西入薮ノ内町京都府庁
275408570大阪市中央区大手前2-1-22大阪府庁
286508567神戸市中央区下山手通5-10-1兵庫県庁
296308501奈良市登大路町30奈良県庁
306408585和歌山市小松原通1-1和歌山県庁
316808570鳥取市東町1-220鳥取県庁
326908501松江市殿町1島根県庁
337008570岡山市北区内山下2-4-6岡山県庁
347308511広島市中区基町10-52広島県庁
357538501山口市滝町1-1山口県庁
367708570徳島市万代町1-1徳島県庁
377608570高松市番町4-1-10香川県庁
387908570松山市一番町4-4-2愛媛県庁
397808570高知市丸ノ内1-2-20高知県庁
408128577福岡市博多区東公園7-7福岡県庁
418408570佐賀市城内1-1-59佐賀県庁
428508570長崎市尾上町3-1長崎県庁
438628570熊本市中央区水前寺6-18-1熊本県庁
448708501大分市大手町3-1-1大分県庁
458808501宮崎市橘通東2-10-1宮崎県庁
468908577鹿児島市鴨池新町10-1鹿児島県庁
479008570那覇市泉崎1-2-2沖縄県庁
スポンサーリンク

アクセスに組み込まれているラベルシール情報

では、住所等をレポートに出力してまいりましょう。

一から作る方法もありますが、今日は、あらかじめアクセスに組み込まれている市販のラベルシール情報を活用して、ラベルシールを作りました。

宛名ラベルウィザードを起動

リボンの「作成」-「レポート」-「宛名ラベル」と指定します。

このとき、レポートのもとになるテーブル又はクエリをいったんクリックしてからでないと、選択できませんので、注意してください。

エーワンのラベルシール28915を指定

宛名ラベルウィザードが起動しました。和休が良く使っている、エーワンの28915を使います。

2列×6行で12面あるラベルシールです。

ラベルに配置するフィールドを指定

ラベルに出力したい項目を選択して次へ。

レポートの並び順を指定

レポートの並び順を指定します。今回は、都道府県コード順にしました。

ラベルの完成

では、ラベルのプレビューで、出来栄えを確認してみましょう。

出来上がったラベルシール

こんな感じで、出来上がりました。

文字の大きさとか配置とかは、後ほどお好きなようにカスタムしてみてください。

スポンサーリンク

レポートを操作するVBAコード

レポートの読み込み時イベントにVBAを記述

次に、レポートにコードを埋め込みます。

レポートの読み込み時イベントに、次のコードを記述します。

Option Compare Database
Option Explicit

Dim kaishiNO As Variant
Dim LPcnt As Long

Private Sub Report_Load()

'印刷を始めるラベル位置を指定
kaishiNO = InputBox("何番目から印刷しますか?")

'ループカウンターをリセット
LPcnt = 1
End Sub

レポートを開くと、インプットボックスが何番目から印刷するか聞いてきます。

インプットボックスに入力した数字(1~12)に対応して、ラベルの印刷開始位置を変更します。

なお、ラベルの印刷順は、次の表のとおりです。

12
34
56
78
910
1112
フォーマット時イベントにVBAを記述

続いて、レポートの詳細部分のフォーマット時イベントにコードを記述してください。

なお、テキストボックスの名称は、次のように指定しています。

  • 郵便番号=txt_郵便番号
  • 住所=txt_住所
  • 宛名=txt_宛名
Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer)

'インプットボックスが入力されなかったときのエラー回避
kaishiNO = Nz(kaishiNO, 1)

'ラベルシートの面数より小さい数または大きい数が指定されたら処理中止
If kaishiNO < 0 Or kaishiNO > 12 Then Exit Sub


'ループカウンターと印刷を開始するラベル位置を比較

If LPcnt >= kaishiNO Then

'ループカウンターが印刷を開始するラベル位置以上であればテキストボックスを表示し、
'次のレコードへ NextRecord = True

    Me.txt_郵便番号.Visible = True
    Me.txt_住所.Visible = True
    Me.txt_宛名.Visible = True
    NextRecord = True
Else

'そうでないときはテキストボックスを非表示
'次のレコードへ進まない NextRecord = false

    Me.txt_郵便番号.Visible = False
    Me.txt_住所.Visible = False
    Me.txt_宛名.Visible = False
    NextRecord = False
End If

'ループカウンターをカウントアップ
LPcnt = LPcnt + 1
End Sub

ループカウンターの値が、レポートを開いたときに指定したラベル番号以上となったときは郵便番号等を表示し、そうでないときは非表示にする、という内容になっています。

ただ、そのままでは非表示にした住所の印刷がスキップされてしまいますので、

NextRecord = False

を設定することで、次のラベルにも同じ内容を出力しています。

郵便番号等が表示されれば、通常どおり、次のラベルに次のレコードの内容を出力します。

スポンサーリンク

実際に使ってみましょう

インプットボックスに印刷開始番号を入力

レポートを開くと、インプットボックスが出現しますので、印刷を開始したいラベルシールの位置を入力してください。

なお、1~12以外の数字を入力すると、1を指定したとみなします。

指定した場所のラベルから印刷された

このように、3番目のラベルシールから印刷が始まりました。

重ね重ねになりますが、ラベルシールのメーカーは、プリンター詰まりの原因となることから、途中からの印刷を推奨しません。

会社のプリンターを詰まらせたりしないように、ご注意くださいネ。

コメントをどうぞ!

タイトルとURLをコピーしました