先回に続き、封筒宛名印刷エクセルのVBAコード組み立て方についてです。
今回は、宛名リストの作り方についての説明を行っていきます。
コード数も多くありませんのでサクッと行きたいと思います。
こんにちは、じゅんぱ店長(@junpa33)です。
この説明の前に、先回の記事を確認されたいという場合は、こちら↓になります。
このエクセルソフト完成品をフリーダウンロードするにはこちら↓の記事からです。
無料DL!封筒宛名印刷エクセルソフト ダウンロードと取り扱い説明。
封筒宛名印刷についての記事はこちらです。
コンテンツ
マルチページを使った宛名リストの作成の流れ
- ユーザーフォームにマルチページを配置する
- 既にあるエクセルベースの住所録を利用できるようにする。
- 宛名リストはデータを蓄積して行けるようにします。既存住所録を宛名リストに転記していれば、その後に追記していきます。
- エクセル既存のソートツールでリスト並び替えも出来るようにします。
リスト項目の並び順については変更できませんので注意が必要です。
ないですが、それ用のコードがまた必要になります。そこまでしなくても配置のルールを守るということで考えましょう。
マルチページの設置方法については、こちら↓の解説記事でご確認ください。

宛名リスト作成のVBAコード
「封筒宛名印刷コントロール」の「新規追加」マルチページをデザインします
この様なビジュアルを考えます。マルチページのページのレイアウトはご自由に配置いただくことはできます。
青矢印の部分です。
マルチページの設置とコントロールの設置方法
マルチページはユーザーフォームコントロールツールの中でも、非常に使って楽しいものだと思います。
フォームのスタイルをコンパクトに納めれるだけではなく、操作のジャンル分けもきれいに行うことが出来ます。
マルチページの設置方法の実例についてはこちら↓でも確認できます。
テキストボックス、コマンドボタンなどのコントロールの設置方法はこちら↓で確認できます。
マルチページ「新規追加」のプロパティ
オブジェクト名 「新規追加」
Caption 「新規追加」
「新規追加」ページ内のラベルとテキストボックス
赤矢印はラベルです。
青矢印はテキストボックスです。
テキストボックスのプロパティは次のように設定します。
①テキストボックス「宛名」 | ②テキストボックス「敬称」 | ③テキストボックス「所属先名」 |
オブジェクト名「宛名名」 | オブジェクト名「敬称」 | オブジェクト名「所属先名」 |
④テキストボックス「郵便番号」 | ⑤テキストボックス「郵便番号」 | ⑥テキストボックス「都道府県名」 |
オブジェクト名「前3桁」 |
オブジェクト名「後4桁」 |
オブジェクト名「都道府県名」 |
⑦テキストボックス「市区町村」 | ⑧テキストボックス「番地」 | ⑨テキストボックス「ビル・マンション名」 |
オブジェクト名「市区町村名」 |
オブジェクト名「番地他名」 |
オブジェクト名「BM」 |
⑩テキストボックス「連絡番号」 |
オブジェクト名「連絡番号」 |
これらのテキストボックスに入力した値・データは、Module3に記述するプロシージャーで利用します。
テキストボックスが10個ありますので、オブジェクト名も連番式の名前(テキスト1、テキスト2とか)ではなくわかりやすい名前にした方が良いと思います。
「新規追加」ページ内のコマンドボタン
青矢印の部分です。
コマンドボタンのプロパティはこのように設定します。
⑪コマンドボタン「宛名リスト整頓」 | ⑫コマンドボタン「入力クリア」 | ⑬コマンドボタン「発送先登録」 |
オブジェクト名「宛名リスト整頓」 Caption 「宛名リスト整頓」 |
オブジェクト名「入力クリア」 Caption 「入力クリア」 |
オブジェクト名「発送先登録」 Caption 「発送先新規登録」 |
フォームモジュールへのコントロールのコード記述
テキストボックスについては、特に記述はありません。
コマンドボタンのコード記述
⑪コマンドボタン「宛名リスト整頓」
module3の「宛名リストの整頓」プロシージャーを呼び出します。
Private Sub 宛名リスト整頓_Click()
Module3.宛名リストの整頓
End Sub
⑫コマンドボタン「入力クリア」
各テキストボックスに 空白 ”” を挿入すます。
Private Sub 入力クリア_Click()
宛名印刷設定.宛名名.Value = “”
宛名印刷設定.敬称.Value = “”
宛名印刷設定.所属先名.Value = “”
宛名印刷設定.前3桁.Value = “”
宛名印刷設定.後4桁.Value = “”
宛名印刷設定.都道府県名.Value = “”
宛名印刷設定.市区町村名.Value = “”
宛名印刷設定.番地他名.Value = “”
宛名印刷設定.BM.Value = “”
宛名印刷設定.連絡番号.Value = “”
End Sub
⑬コマンドボタン「発送先登録」
module3の「宛名追加」プロシージャーを呼び出します。
Private Sub 発送先登録_Click()
Module3.宛名追加
End Sub
標準モジュール(Module3)へのコード記述
コマンドボタンのコード記述
⑪コマンドボタン「宛名リスト整頓」
「宛名リスト」シートの先頭行にデータ項目を挿入します。
Sub 宛名リストの整頓()
Dim ans As Boolean
Dim s As Long
Worksheets(“宛名リスト”).Select
ans = MsgBox(“1行目に項目名、A列にリスト通番が打たれます。” & vbCrLf & “実行していいですか?”, _
vbYesNo + vbQuestion, “確認”)
If ans = vbYes Then
Range(“B1”) = “宛名”
Range(“C1”) = “敬称”
Range(“D1”) = “所属先名”
Range(“E1”) = “郵便番号”
Range(“F1”) = “都道府県”
Range(“G1”) = “市区町村”
Range(“H1”) = “番地”
Range(“I1”) = “ビル・マンション名”
Range(“J1”) = “連絡番号”
ATRow = Cells(Rows.Count, 2).End(xlUp).Row
For s = 2 To ATRow
Range(“A” & s) = s – 1
Next s
Worksheets(“宛名リスト”).Columns.AutoFit
Else
Exit Sub
End If
End Sub
⑬コマンドボタン「発送先登録」
ユーザーフォームのテキストボックスからのデータ・数値取り込みするための実例コードです。
「宛名リスト」シートに登録されているリストの最終行を調べてその次に新しいリストを追加します。
追加されるデータは、「封筒宛名印刷コントロール」の「新規追加」ページのテキストボックスの値を直接取り込みます。
Sub 宛名追加()
Dim ATRow As Long
Workbooks(“封筒宛名印字.xlsm”).Activate
Worksheets(“宛名リスト”).Select
ATRow = Cells(Rows.Count, 2).End(xlUp).Row
If 宛名印刷設定.宛名名.Value <> “” Then
Range(“B” & ATRow + 1) = 宛名印刷設定.宛名名.Value
Range(“C” & ATRow + 1) = 宛名印刷設定.敬称.Value
Range(“D” & ATRow + 1) = 宛名印刷設定.所属先名.Value
Range(“E” & ATRow + 1) = 宛名印刷設定.前3桁.Value & “-” & 宛名印刷設定.後4桁.Value
Range(“F” & ATRow + 1) = 宛名印刷設定.都道府県名.Value
Range(“G” & ATRow + 1) = 宛名印刷設定.市区町村名.Value
Range(“H” & ATRow + 1) = 宛名印刷設定.番地他名.Value
Range(“I” & ATRow + 1) = 宛名印刷設定.BM.Value
Range(“J” & ATRow + 1) = 宛名印刷設定.連絡番号.Value
Else
Exit Sub
End If
Range(“B” & ATRow).Select
End Sub
宛名リスト作成のまとめ
リストとなるシートにダイレクトにデータを登録する方が話が早いという場合もあります。が、
ユーザーフォームを主体に使う場合は、特に、操作がユーザーフォームであったりエクセルシートであったり、あっちこっちすると使い勝手が悪くなることが多くなります。
ですので、その場合は出来るだけどちらかに固めて行った方が良いと思います。
今回の作成したコードは、「マルチページ」と「ユーザーフォームからの入力データの取り出し方」の実例としても参考にしていただけると思います。
次の記事は、一件毎の宛名印刷についてのコード組み立てを行います。
短期間でエクセルVBAの独学習得を目指したいなら
エクセルVBAを独学する独習方法は、学習者それぞれ十人十色、多種多様と思われます。
けれども、
出来るだけ効率よく学習するためには、いくつかの大切なポイントがあります。
独学でもVBA習得の中級クラスに達するのはそんなに難しいことではありません。
先人が行った勉強方法をあなたがそのまま利用すればよいということです。

独習のための大切な7つのポイントは、上記記事にて解説しています。
独習によるVBA習得のキーワードは、
出来るだけ多くの実例に触れること!
です。
正直、VBAの学習について自分の周りの仕事(業務)からだけ実例を得るのでは効率良い習熟は無理です。
ハッキリ言って、
本当に短い期間でVBA習得を成功させたいなら、今使っている参考書が良書かどうかを判断し、新ツールとしてオンライン学習も取り入れて行うことが、
手っ取り早く短期間習得できるというのは間違いないでしょう。
エクセルVBAを独習するのに参考書は欠かせません。 参考書選びは自分に合った「相棒」にできるものを選んでいきたいです。
エクセルVBAの独習でおすすめ参考書を7冊選ぶ。良書との出会いは大切です
エクセルVBAの独習には動画学習という方法もあります。 目と耳両方を使って学習することでさらに勉強効率を上げることもできると思います。
エクセルVBA初級者がUdemyで動画学習する講座おすすめ5選と無料講座の上手な使い方。
エクセルVBAを使って業務効率を上げて行くのに、始めのうちに知っておきたい内容を纏めています。
今回の記事はここまでです。 最後までご覧いただき有難うございました。