Excel入門 宛先リストから宛名ラベル(レターパック用)をつくる方法(XLOOKUP関数・マクロ)

  • URLをコピーしました!

※レターパックプラス – by Canon RP(RF35mm f 2.0 1/80 ISO 100)

郵送するときはレターパックを使っています。

そのラベルはExcelで管理しています。

目次

レターパック(プラス)の一択

データでやりとりすることがほとんどですが、そうもいかない場合はレターパックで郵送しています。

そのレターパック。
ライト(青)とプラス(赤)の2つ種類がありますが、使うとしてもプラス(赤)の方です。

レターパックライト(青)は、受取るときにポストに投函されるのですが、プラス(赤)の方だと先方へ直接手渡しで届けてくれます。不在時でも一旦持ち帰ってもらえるので、ポストに投函されることはありません。

その分、レターパックプラス(赤)は600円。ライト(青)430円に比べてちょっとお高めですが、安心料込みと考えてプラス(赤)を使うようにしています。

郵送するのは年間で数回あるかないかくらいなのですが、宛名はExcelで作って管理するようにしています。

宛名ラベルはデータ(テーブル)連動で作成(XLOOKUP関数)

Excelの宛名ラベル自体はシンプルです。

完成形はこのようなExcelのシートを

プリントアウトして、

レターパックの四角い枠に収まるように貼ります(電話番号のカッコ()は無視してます)。

ただ、ラベルをExcelでつくるとしても、

・毎回宛先を入力する
・余分にストックを用意しておく

といったことはやりたくありません。

宛先ごとにシートを分けておく方法もあるのでしょうが、それだとわざわざExcelを使う意味も半減してしまいます。

そこで、このような宛先データをつくっておきます。

こういったマスタのようなデータをつくるときもExcelの「テーブル」を使っておくと便利です。
※テーブルについては、こちらの記事も参考にしてみていただければ。

「Code」は連番にしておくと重複を防ぐことができ管理もしやすくなりおすすめです。

そして、A列の「Code」をキーにして、ラベルに情報が連動するようにつくっていきます。
実際に使っているのはXLOOKUP関数です。

赤色のように、シート「Data」上のCode(ここでは「1」)を、シート「ラベル」のA1セルに入力すると、青色の情報が反映されます。

紺色の差出人(自分)の情報は一定なので、最初に入力しておくだけです。

たとえば、「郵便番号」だと、シート「Data」のC列にあるので、
「=XLOOKUP($A$1,Data!A:A,Data!C:C)」

B2セルの「住所」は、「=XLOOKUP($A$1,Data!A:A,Data!D:D)」
B3セルの「建物名」は、「=XLOOKUP($A$1,Data!A:A,IF(Data!E:E=””,””,Data!E:E))」

宛先によっては「建物名」が入らないもあるため、「IF(Data!E:E=””,””,Data!E:E)」として、空欄になるようにしています。

会社名なども、末尾の「Data!〇:〇」のところを、対応する列に変えれば、情報を反映させることができます。

このように、お客様の情報をマスタ化しておくと、何かと役に立つ使い方ができて便利です。請求書も同じような仕組みでつくっています。クラウド会計ソフトにも請求書などをつくれるソフトがついていることはありますが、カスタマイズのしやすさ、操作性を考えると、Excelで管理しておくメリットは大きいです。

Excelマクロだとワンタッチでつくれる

前述のXLOOKUP関数でも宛名ラベルはつくれるのですが、「Code」をその都度入力しなくてはなりません。

こういうの間も減らしたいということであれば、マクロが便利です。

マクロを使うと、宛名ラベルを1回の操作でつくることができます。


このリストにある宛先の数(1~5)をカウントして、2行目~6行目まで(Codeは1~5まで)について、

宛名ラベルを繰り返しつくるマクロです。

こういったPDFでプリントアウトするようにしています(ファイル名はCodeと対応しています)。

こういったマクロを書いています。

Sub letterpack()

    Dim wsData As Worksheet
    Dim wsLabel As Worksheet
    Dim lastRow As Long
    Dim i As Long
    Dim pdfPath As String
    
    ' "Data"シートを設定
    Set wsData = ThisWorkbook.Sheets("Data")
    
    ' B列のデータ数を数える
    lastRow = wsData.Range("B2").End(xlDown).Row - 1

    ' "ラベル"シートを設定
    Set wsLabel = ThisWorkbook.Sheets("ラベル")
    
    ' "ラベル"シートの処理を繰り返す
    For i = 1 To lastRow
        
        ' "Code"を入力 (A1セルにiを設定)
        ActiveSheet.Range("A1").Value = i
        
        ' "ラベル"シートをPDFとして保存
        pdfPath = ThisWorkbook.Path & "\" & wsLabel.Range("A1").Value & ".pdf"
        wsLabel.ExportAsFixedFormat Type:=xlTypePDF, Filename:=pdfPath
    
Next i

    ' 完了メッセージを表示
    MsgBox "すべてのPDFが保存されました。"

End Sub

今回ご紹介したサンプルはこちらです(↓)
SOU_Sample_レターパックラベル_マクロ付き

マスタのデータをつくる

資料をつくる

といった流れは他に応用できることもありますし、基本形をおさえておくことはExcelに限らず重要なことです。

XLOOKUP関数やテーブルの基本的なところの勉強にもなりますし、マクロもChatGPTへの聞き方の勉強にもなりますのでおすすめです。


■編集後記
昨日は朝のタスク、会計士業(資料づくりやメールなど)のあとはランチを兼ねて郊外にあるコメダ珈琲へ行ってみました。久しぶりのコメダ珈琲、「自慢のドミグラスバーガー」を。美味しいのですが、それなりのボリュームで、午後は眠気が…。

■息子(10歳)
昨日は学校と放課後デーサービスの日。学校ではようれん菌やコロナが流行りつつあるようです。息子は鼻水がまた出始めたらしく…。熱はないので様子を見ようかというところです。

■昨日の1日1新
・自慢のドミグラスバーガー(コメダ珈琲東雁来店)
・新しいルートで移動



この記事が気に入ったら
いいね または フォローしてね!

  • URLをコピーしました!
目次