今回の封筒宛名印刷エクセルは、差出人印刷についてです。
特徴は、サイズにわせて縦印刷と横印刷に対応し、また差出人を変更することもできます。
SHOP名で、個人で、ニックネームで出すときなどにも使えます。
こんにちは、じゅんぱ店長(@junpa33)です。
まず先回の記事を確認されたいという場合は、こちら↓になります。
印刷の範囲をアクティブセルのRangeオブジェクト利用で指定する。
簡単に利用するには、こちらをご覧ください。
このエクセルソフト完成品を無料でダウンロードするにはこちら↓の記事からです。
無料DL!封筒宛名印刷エクセルソフト ダウンロードと取り扱い説明。
封筒宛名印刷についての記事はこちらです。
コンテンツ
差出人印刷のエクセルVBAコード設定の方法
「差出人ページ」はこのようになります。
- マルチページを増やして「差出人」ページ(タブ)を作ります。
- 「差出人」ページに情報入力用にテキストボックスを配置します。
- 「差出人」ページにコマンドボタンを配置します。
- ユーザーフォームモジュールにコントロールのイベントコードを記述します。
- Module2にコマンドボタンから呼び出すプロシージャーを記述します。
今回の作成のポイントは、
この差出人印刷の特徴は、封筒サイズに合わせた縦印刷と横印刷の両対応。
差出人を登録すれば、その差出人を変更できるということです。
例えば、SHOP名で差し出す場合、個人で差し出す場合、ニックネームで差し出す場合などにも利用することが出来ます。
マルチページの「差出人」ページでコントロールを配置
青矢印と赤矢印が配置したコントロールです。
コントロールを配置します
プロパティを確認してください。
テキストボックスの配置
②テキストボックス「差出人」 | ③テキストボックス「利用区分」 | ④テキストボックス「所属先名」 |
オブジェクト名 「差出名」 | オブジェクト名 「差出利用区分」 | オブジェクト名 「差出所属」 |
⑤テキストボックス「郵便番号」1 | ⑥テキストボックス「郵便番号」2 | ⑦テキストボックス「都道府県」 |
オブジェクト名「差出前3文字」 | オブジェクト名「差出後4文字」 | オブジェクト名「差出都道府県名」 |
⑧テキストボックス「市区町村」 | ⑨テキストボックス「番地」 | ⑩テキストボックス「ビル・マンション名」 |
オブジェクト名「差出市区町村名」 | オブジェクト名「差出番地」 | オブジェクト名「差出ビルマンション」 |
⑪テキストボックス「連絡番号」 |
オブジェクト名「差出連絡番号」 |
コマンドボタンを配置
①コマンドボタン「差出人登録」 | ⑫コマンドボタン「入力クリア」 | ⑬コマンドボタン「差出人印刷」 |
オブジェクト名「差出人登録1」 Caption「差出人登録」 |
オブジェクト名「差出入力クリア」 Caption「入力クリア」 |
オブジェクト名「差出人印刷」 Caption「差出人印刷」 |
ユーザーフォームモジュールへのイベントコード記述
①コマンドボタン「差出人登録1」
Module2の「差出リスト追加」プロシージャーを呼び出します。
Private Sub 差出人登録1_Click()
Module2.差出リスト追加
End Sub
⑫コマンドボタン「差出入力クリア」
入力欄のそれぞれに「 ”” (空白)」を入力します。
Private Sub 差出入力クリア_Click()
宛名印刷設定.差出名.Value = “”
宛名印刷設定.差出所属.Value = “”
宛名印刷設定.差出前3文字.Value = “”
宛名印刷設定.差出後4文字.Value = “”
宛名印刷設定.差出都道府県名.Value = “”
宛名印刷設定.差出市区町村名.Value = “”
宛名印刷設定.差出番地.Value = “”
宛名印刷設定.差出ビルマンション.Value = “”
宛名印刷設定.差出連絡番号.Value = “”
End Sub
⑬コマンドボタン「差出人印刷」
Module2の「差出人名印刷」プロシージャーを呼び出します。
Private Sub 差出人印刷_Click()
Module2.差出人名印刷
End Sub
Module2に差出人印刷VBAコードを記述する
モジュール内で共通の変数の宣言を先頭に記述します。
Public STY As Variant
Public TPnU As Double, TPnL As Double, TPnM As Double, TPnRo As Double, TPnCo As Double
Public saR As Long
Public saN, saKei, saSho, saYB, saK, saSK, saB, saBM, saRe
フォント設定について、フォントを「差出」シートでも独自に選択できるようにします。宣言の次にこの記述をしておきます。
Sub 差出フォント設定()
Worksheets(“差出”).Select
Cells.Select
With Selection.Font
If 宛名印刷設定.ComboBox1.ListIndex = 0 Then
.Name = “MS Pゴシック”
ElseIf 宛名印刷設定.ComboBox1.ListIndex = 1 Then
.Name = “MS P明朝”
ElseIf 宛名印刷設定.ComboBox1.ListIndex = 2 Then
.Name = “AR P隷書体M”
Else
.Name = “MS Pゴシック”
End If
End With
Range(“A1”).Select
End Sub
フォントを選択しない場合は、MSPゴシックになります。
「差出リスト追加」プロシージャー
1行目に項目が入ります。差出人を入力する毎にリストが追加されていきます。
Sub 差出リスト追加()
Dim SDRow As Long
Workbooks(“封筒宛名印字.xlsm”).Activate
Worksheets(“差出名リスト”).Select
Range(“B1”) = “差出名”
Range(“C1”) = “利用区分”
Range(“D1”) = “所属先名”
Range(“E1”) = “郵便番号”
Range(“F1”) = “都道府県”
Range(“G1”) = “市区町村”
Range(“H1”) = “番地”
Range(“I1”) = “ビル・マンション名”
Range(“J1”) = “連絡番号”
SDRow = Cells(Rows.Count, 2).End(xlUp).Row
For s = 2 To SDRow + 1
Range(“A” & s) = s – 1
Next s
If 宛名印刷設定.差出名.Value <> “” Then
Range(“B” & SDRow + 1) = 宛名印刷設定.差出名.Value
Range(“C” & SDRow + 1) = 宛名印刷設定.差出利用区分.Value
Range(“D” & SDRow + 1) = 宛名印刷設定.差出所属.Value
Range(“E” & SDRow + 1) = 宛名印刷設定.差出前3文字.Value & “-” & 宛名印刷設定.差出後4文字.Value
Range(“F” & SDRow + 1) = 宛名印刷設定.差出都道府県名.Value
Range(“G” & SDRow + 1) = 宛名印刷設定.差出市区町村名.Value
Range(“H” & SDRow + 1) = 宛名印刷設定.差出番地.Value
Range(“I” & SDRow + 1) = 宛名印刷設定.差出ビルマンション.Value
Range(“J” & SDRow + 1) = 宛名印刷設定.差出連絡番号.Value
Else
Exit Sub
End If
Range(“B” & SDRow).Select
Worksheets(“差出名リスト”).Columns.AutoFit
Worksheets(“差出名リスト”).Select
End Sub
「差出人名印刷」プロシージャー
宛名印刷の時と同様に、変数を使ってセルサイズ、フォントサイズを変化させて、各封筒サイズに適応させています。
アクティブセルの行番号をターゲットとして変数に値を代入していきます。
Sub 差出人名印刷()
Worksheets(“差出名リスト”).Select
saR = ActiveCell.Row
saN = Range(“B” & saR).Value
saKei = Range(“C” & saR).Value
saSho = Range(“D” & saR).Value
saYB = Range(“E” & saR).Value
saK = Range(“F” & saR).Value
saSK = Range(“G” & saR).Value
saB = Range(“H” & saR).Value
saBM = Range(“I” & saR).Value
saRe = Range(“J” & saR).Value
STY = 0
TPnU = 0
TPnL = 0
TPnM = 0
TPnRo = 0
TPnCo = 0
STY = 宛名印刷設定.TP_no.Caption
If STY = “TP1” Then
If 宛名印刷設定.横書き2 = True Or 宛名印刷設定.横書き3 = True Then
STY = “TP1y”
TPnU = 0.7
TPnL = 1
TPnM = 0.87
TPnRo = 0.6
TPnCo = 1
Else
TPnU = 1
TPnL = 0.5
TPnM = 1
TPnRo = 0.87
差出縦書き
GoTo step1
End If
ElseIf STY = “TP2” Then
TPnU = 5
TPnL = 0.5
TPnM = 1.2
TPnRo = 1.2
差出縦書き
GoTo step1
ElseIf STY = “TP3” Then
If 宛名印刷設定.横書き1 = True Then
STY = “TP3y”
TPnU = 1
TPnL = 1
TPnM = 1.2
TPnRo = 1
TPnCo = 1
Else
TPnU = 5
TPnL = 0.5
TPnM = 1.2
TPnRo = 1.2
差出縦書き
GoTo step1
End If
ElseIf STY = “TP4” Then
TPnU = 6
TPnL = 1
TPnM = 1.3
TPnRo = 1.3
TPnCo = 1
ElseIf STY = “TP5” Then
If 宛名印刷設定.サイズ表示A.Caption = “長形2号” Then
TPnU = 5
TPnL = 0.3
TPnM = 1.3
TPnRo = 1.1
TPnCo = 0.8
Else
TPnU = 1
TPnL = 1
TPnM = 1.3
TPnRo = 0.9
TPnCo = 1
End If
ElseIf STY = “TP6” Then
TPnU = 3
TPnL = 0.5
TPnM = 1
TPnRo = 1.3
差出縦書き
GoTo step1
ElseIf STY = “TP7” Then
TPnU = 5.5
TPnL = 2
TPnM = 2
TPnRo = 1.4
TPnCo = 1
ElseIf STY = “TP8” Then
TPnU = 2.5
TPnL = 2
TPnM = 1.5
TPnRo = 1.2
TPnCo = 1
ElseIf STY = “TP9” Then
TPnU = 1
TPnL = 1
TPnM = 1.5
TPnRo = 1.1
TPnCo = 1
ElseIf STY = “TP10” Then
TPnU = 1
TPnL = 1
TPnM = 1.5
TPnRo = 1
TPnCo = 1
Else
MsgBox “封筒サイズが指定されていません。”, vbOKOnly, “メッセージ”
Exit Sub
End If
各封筒サイズに割り振られた変数の値によって、セルの大きさ、行高さ、列幅、フォントサイズを決めています。
With Worksheets(“差出”)
.Cells.ClearFormats
.Cells.ClearContents
.Cells.UseStandardHeight = True
.Cells.UseStandardWidth = True
.PageSetup.CenterHorizontally = False
.PageSetup.TopMargin = Application.CentimetersToPoints(2.5)
.PageSetup.LeftMargin = Application.CentimetersToPoints(0.25)
.PageSetup.RightMargin = Application.CentimetersToPoints(0.5)
.Rows.RowHeight = 24 * TPnRo
.Columns(1).ColumnWidth = 4.5 * TPnL
.Columns.ColumnWidth = 8.38 * TPnCo
.Cells.Font.Size = 11 * TPnM
.Cells.ShrinkToFit = True
.Rows(1).RowHeight = 24 * TPnU
.Range(“B19”).Value = saYB
.Range(“B20”).Value = saK & saSK & saB
.Range(“B21”).Value = saBM
.Range(“B22”).Value = saSho
.Range(“B22”).Font.Size = 13 * TPnM
.Range(“B22”).Font.Bold = True
.Range(“B23”).Value = saN
.Range(“B23”).Font.Size = 13 * TPnM
.Range(“B23”).Font.Bold = True
.Range(“B24”).Value = saRe
End With
step1:
Worksheets(“差出”).Columns.AutoFit
差出フォント設定
差出人名印刷PV
End Sub
「差出縦書き」プロシージャー
縦書きが必要な封筒サイズのために、別にプロシージャーを記述しています。
Sub 差出縦書き()
With Worksheets(“差出”)
.Cells.ClearFormats
.Cells.ClearContents
.Cells.UseStandardHeight = True
.Cells.UseStandardWidth = True
.PageSetup.LeftMargin = Application.CentimetersToPoints(0.1)
.PageSetup.RightMargin = Application.CentimetersToPoints(0.5)
.PageSetup.BottomMargin = Application.CentimetersToPoints(0.5)
.Rows.RowHeight = 24 * TPnRo
.Columns(“A”).ColumnWidth = 1.5
.Columns(“B:Q”).ColumnWidth = 2.3
.Columns(“R”).ColumnWidth = 3
.Cells.Font.Size = 13 * TPnM
.Cells.ShrinkToFit = True
.Cells.Orientation = xlVertical
.Cells.VerticalAlignment = xlTop
.Rows(1).RowHeight = 24 * TPnU
.Range(“B6”).Value = saYB
.Range(“F7”).Value = saK & saSK & saB
.Range(“E7”).Value = saBM
.Range(“D8”).Value = saSho
.Range(“D8”).Font.Size = 13 * TPnM
.Range(“C7”).Value = saN
.Range(“C7”).Font.Size = 13 * TPnM
.Range(“B7”).Value = saRe
.Range(“B6:F6”).MergeCells = True
.Range(“F7:F17”).MergeCells = True
.Range(“E7:E17”).MergeCells = True
.Range(“D8:D17”).MergeCells = True
.Range(“C7:C17”).MergeCells = True
.Range(“B7:B17”).MergeCells = True
.Range(“B6”).Orientation = xlHorizontal
.Range(“B6”).HorizontalAlignment = xlCenter
.Range(“F7”).VerticalAlignment = xlTop
.Range(“E7”).VerticalAlignment = xlTop
.Range(“D8”).VerticalAlignment = xlTop
.Range(“B7”).VerticalAlignment = xlBottom
End With
End Sub
「差出人名印刷PV」プロシージャー
最後に印刷プレビューの表示です。確認してOKであればプレビュー内の「印刷ボタン」を押します。
Sub 差出人名印刷PV()
Worksheets(“差出”).PrintPreview
End Sub
「差出人を封筒に印刷」のVBAコードのまとめ
この差出人印刷の特徴は、封筒サイズに合わせて縦印刷と横印刷の両方に対応しているということです。
更に登録した差出人の中で、差出人を変更できるということです。
例えば、SHOP名で差し出す場合、個人で差し出す場合、ハンネで差し出す場合などにも利用することが出来ます。
最後に、封筒の種類を増やしたいときのコード修正のポイントを挙げておきます。
- 「封筒宛名コントロール」のオプションボタンをその封筒サイズ名で増やします。(同じフレーム内に入れてください。)
- プリンターへの「封筒登録」を行ってください。
- ユーザーフォームモジュールに増やしたオプションボタンのイベントコードを記述します。
- 封筒タイプ(現在はTP1からTP10)を増やすかどうかを考えます。現在あるタイプのどれかに入るならそのタイプにします。
- 封筒タイプは宛名の印刷位置を規定していますので、増やす場合は、5つの変数TPnU・TPnL・TPnM・TPnRo・TPnCoを設定してください。
- Module1で「単独印刷」プロシージャー、Module2で「差出人名印刷」プロシージャー内のタイプ判定コードに対して、その封筒サイズの条件分岐を増やしてください。
この「封筒宛名印刷エクセル」を無料でダウンロードするのはこちら↓から行うことが出来ます。
こちら↓でダウンロードすることが出来ます。
ただし、こちらの方はVBAコードを保護していますので、使う側でのVBAコードのカスタマイズを行うことはできません。
ここの記事説明とダウンロードしたソフトで、早々に利用していただくことが出来ます。
[ダウンロードが見つかりません]
このソフトはご自分で業務でお使いいただくのはフリーですが、
転載や転売については許可しておりませんので、ご使用にならないよう固くお断りいたします。
このテーマの記事を始めから読むのは、こちら↓からスタートしてください。
エクセルだけで16種類の封筒に宛名印刷ができる。住所録転用可能!
エクセルVBAを独習するのに参考書は欠かせません。 参考書選びは自分に合った「相棒」にできるものを選んでいきたいです。
エクセルVBAの独習でおすすめ参考書を7冊選ぶ。良書との出会いは大切です
エクセルVBAを使って業務効率を上げて行くのに、始めのうちに知っておきたい内容を纏めています。
今回の記事はここまでです。 最後までご覧いただき有難うございました。