エクセルVBAでインボイス領収書を作成しています。
今回は印刷コントロールのためのユーザーフォームについてです。
プロパティ、イベントプロシージャーを解説します。
こんにちは、じゅんぱ店長(@junpa33)です。
この記事では、ユーザーフォームを作成します。インボイス領収書のテンプレート作成や領収書発行の実行などをコントロールするためのものになります。
作成するユーザーフォーム名は「コントロールパネル」という名称にします。
印刷方法のコントロールについては、連続印刷と単独印刷の設定を行えるようにします。
インボイス領収書作成の記事編成
- インボイス領収書作成ソフトの使い方とダウンロード
コンテンツ
ユーザーフォームでマクロを管理する
ユーザーフォーム「コントロールパネル」の仕上がり
完成形はこのようになります。
ユーザーフォームには、このようにコマンドボタン、テキストボックスやマルチページなどを設置します。
ユーザーフォームの最初の設定方法に不安な方は、こちらの記事を参考にしてください。
領収書ベース作成セクション
コマンドボタンの設置
コマンドボタンをユーザーフォームに設置する基本はこちらを参考にしてください。
「テンプレート作成」ボタン
プロパティ項目 | 値 |
---|---|
(オブジェクト名) | テンプレート作成 |
BackColor | デフォルト(好みで変更可能) |
Caption | テンプレート作成 |
Font | MSゴシック(好みで変更可能) |
ForeColor | デフォルト(好みで変更可能) |
TabIndex | 全コントロール設置後に一度に設定 |
以下のコードを記述します。
Private Sub テンプレート作成_Click()
Call Module2.領収書Temp
Call Module2.セル表示設定
End Sub
「テンプレートクリア」ボタン
プロパティ項目 | 値 |
---|---|
(オブジェクト名) | テンプレートクリア |
BackColor | デフォルト(好みで変更可能) |
Caption | テンプレートクリア |
Font | MSゴシック(好みで変更可能) |
ForeColor | デフォルト(好みで変更可能) |
TabIndex | 全コントロール設置後に一度に設定 |
Private Sub テンプレートクリア_Click()
Call Module2.テンプレートオールクリア
End Sub
「発行者保存欄作成」ボタン
プロパティ項目 | 値 |
---|---|
(オブジェクト名) | 発行者保存欄作成 |
BackColor | デフォルト(好みで変更可能) |
Caption | 発行者保存欄作成 |
Font | MSゴシック(好みで変更可能) |
ForeColor | デフォルト(好みで変更可能) |
TabIndex | 全コントロール設置後に一度に設定 |
Private Sub 発行者保存欄作成_Click()
Call Module3.印影Temp
End Sub
「発行者データクリア」ボタン
プロパティ項目 | 値 |
---|---|
(オブジェクト名) | 発行者データクリア |
BackColor | デフォルト(好みで変更可能) |
Caption | 発行者データクリア |
Font | MSゴシック(好みで変更可能) |
ForeColor | デフォルト(好みで変更可能) |
TabIndex | 全コントロール設置後に一度に設定 |
Private Sub 発行者データクリア_Click()
Call Module3.印影オールクリア
End Sub
発行年月日セクション
テキストボックスの設置
ユーザーサイドで領収書発行日を入力してもらいます。
テキストボックスをユーザーフォームに設置する基本はこちらを参考にしてください。
「元号」テキストボックス
プロパティ項目 | 値 |
---|---|
(オブジェクト名) | 元号 |
BackColor | デフォルト(好みで変更可能) |
Font | MSゴシック |
ForeColor | デフォルト(好みで変更可能) |
IMEMode | デフォルト |
TabIndex | 全コントロール設置後に一度に設定 |
Text | 元号 |
「ねん」テキストボックス
プロパティ項目 | 値 |
---|---|
(オブジェクト名) | ねん |
BackColor | デフォルト(好みで変更可能) |
Font | MSゴシック |
ForeColor | デフォルト(好みで変更可能) |
IMEMode | デフォルト |
TabIndex | 全コントロール設置後に一度に設定 |
Text | ねん |
「つき」テキストボックス
プロパティ項目 | 値 |
---|---|
(オブジェクト名) | つき |
BackColor | デフォルト(好みで変更可能) |
Font | MSゴシック |
ForeColor | デフォルト(好みで変更可能) |
IMEMode | デフォルト |
TabIndex | 全コントロール設置後に一度に設定 |
Text | つき |
「にち」テキストボックス
プロパティ項目 | 値 |
---|---|
(オブジェクト名) | にち |
BackColor | デフォルト(好みで変更可能) |
Font | MSゴシック |
ForeColor | デフォルト(好みで変更可能) |
IMEMode | デフォルト |
TabIndex | 全コントロール設置後に一度に設定 |
Text | にち |
コマンドボタンの設置
コマンドボタンをユーザーフォームに設置する基本はこちらを参考にしてください。
「日付入力」ボタン
プロパティ項目 | 値 |
---|---|
(オブジェクト名) | 日付入力 |
BackColor | デフォルト(好みで変更可能) |
Caption | 日付入力 |
Font | MSゴシック(好みで変更可能) |
ForeColor | デフォルト(好みで変更可能) |
TabIndex | 全コントロール設置後に一度に設定 |
Private Sub 日付入力_Click()
Gen = コントロールパネル.Controls("元号").Value
Nen = コントロールパネル.Controls("ねん").Value
Tuk = コントロールパネル.Controls("つき").Value
Nit = コントロールパネル.Controls("にち").Value
End Sub
印刷設定セクション
マルチページの設置
マルチページを使って、「単独印刷」と「連続印刷」の2つのパターンを作ります。
マルチページをユーザーフォームに設置する基本はこちらを参考にしてください。
「MultiPage」マルチページ
タブ表示の文字設定を変更して視認性を上げます。
「単独印刷」ページ
タブ設定
「Caption」はタグ名の表示になります。
「Index」はタグの重なり順です(0から始まります。)
(使用説明)ラベル設定
「Caption」を記入することで、文章を表示させることが出来ます。
「オブジェクト名」は、判別がつき易くするために変更しています。
(宛名確認)ラベル設定
プロパティの設定は他のラベルと同様です。
このラベルをクリックしたときにイベントが発生するようにします。
Private Sub 印刷宛名_Click()
Call Module1.宛名確認
End Sub
「印刷スタート」ボタン
プロパティ項目 | 値 |
---|---|
(オブジェクト名) | 一件印刷 |
BackColor | デフォルト(好みで変更可能) |
Caption | 印刷スタート |
Font | MSゴシック(好みで変更可能) |
ForeColor | デフォルト(好みで変更可能) |
TabIndex | 全コントロール設置後に一度に設定 |
Private Sub 一件印刷_Click()
Call Module1.一件を印刷
End Sub
「連続印刷」ページ
タブ設定
「Caption」はタグ名の表示になります。
「Index」はタグの重なり順です(0から始まります。
(使用説明)ラベル設定
「Caption」を記入することで、文章を表示させることが出来ます。
「オブジェクト名」は、判別がつき易くするために変更しています。
「伝票番号始点」テキストボックス
「オブジェクト名」は、伝票番号始点とします。
「伝票番号終点」テキストボックス
「オブジェクト名」は、伝票番号終点とします。
「入力確認」ボタン
プロパティ項目 | 値 |
---|---|
(オブジェクト名) | 入力確認ボタン |
BackColor | デフォルト(好みで変更可能) |
Caption | 入力確認 |
Font | MSゴシック(好みで変更可能) |
ForeColor | デフォルト(好みで変更可能) |
TabIndex | 全コントロール設置後に一度に設定 |
Private Sub 入力確認ボタン_Click()
コントロールパネル.番号確認.Caption = "「" _
& Me.伝票番号始点.Value & "」から" & "「" _
& Me.伝票番号終点.Value & "」まで印刷します。"
Call Module1.領収書連続印刷準備
End Sub
(番号確認)ラベル設定
「Caption」を記入することで、文章を表示させることが出来ます。
「オブジェクト名」は、判別がつき易くするために変更しています。
「入力確認」ボタンをクリックしたときに発生するイベントで、この「番号確認」ラベルに設定したデータが表示されるようにしています。
「番号確認」ラベルをクリックしたときは、表示されている文字データをクリアするコード設置します。
Private Sub 番号確認_Click()
コントロールパネル.番号確認.Caption = ""
End Sub
「印刷スタート」ボタン
プロパティ項目 | 値 |
---|---|
(オブジェクト名) | 印刷開始 |
BackColor | デフォルト(好みで変更可能) |
Caption | 印刷開始 |
Font | MSゴシック(好みで変更可能) |
ForeColor | デフォルト(好みで変更可能) |
TabIndex | 全コントロール設置後に一度に設定 |
Private Sub 印刷開始_Click()
Dim rea As Long
rea = MsgBox("印刷を始めますか?", _
vbYesNo + vbQuestion + vbDefaultButton2, _
"インボイス領収書作成")
If rea = vbNo Then Exit Sub
Call Module1.領収書連続印刷実行
End Sub
タブ・インデックスの設定
ユーザーフォームにすべてのコントロールを配置し完成させたところで、タブオーダーを設定していきます。
今回は、マルチページを使用したので、
- ユーザーフォームに直接に設置したコントロール
- マルチページの「単独印刷」ページに設置したコントロール
- マルチページの「連続印刷」ページに設置したコントロール
の3つに分けて順番を設定していきます。
①ユーザーフォーム上の何もないところで右クリックメニューを表示します。
項目を上下に移動させて順番を整えてください。
同様に②、③のマルチページの場合も行ってください。
まとめ
ユーザーフォーム「コントロールパネル」を作成しました。
各コントロールの配置やイベントプロシージャーの記述を行いました。
イベントプロシージャーから呼び出した、プロシージャーについて、印刷処理に関するものは、次回記事で説明を行います。
エクセルVBAを独習するのに参考書は欠かせません。 参考書選びは自分に合った「相棒」にできるものを選んでいきたいです。
エクセルVBAの独習でおすすめ参考書を7冊選ぶ。良書との出会いは大切です今回の記事はここまでです。 最後までご覧いただき有難うございました。
<記事内容についての告知>
VBAコードの記述記事においては、その記述には細心の注意をしたつもりですが、掲載のVBAコードは動作を保証するものではりません。 あくまでVBAの情報の一例として掲載しています。 掲載のVBAコードのご使用は、自己責任でご判断ください。 万一データ破損等の損害が発生しても当方では責任は負いません。
アンケートでポイ活しよう!!
アンケートに答えれば答えるほど ”使える” ポイントがたまります。