領収書発行をユーザーフォームで管理 インボイス領収書4

invorecipformeyecatch

エクセルVBAでインボイス領収書を作成しています。
今回は印刷コントロールのためのユーザーフォームについてです。
プロパティ、イベントプロシージャーを解説します。

こんにちは、じゅんぱ店長(@junpa33)です。

この記事では、ユーザーフォームを作成します。インボイス領収書のテンプレート作成や領収書発行の実行などをコントロールするためのものになります。

作成するユーザーフォーム名は「コントロールパネル」という名称にします。

印刷方法のコントロールについては、連続印刷と単独印刷の設定を行えるようにします。

ユーザーフォームでマクロを管理する

invorecipuserf024

ユーザーフォーム「コントロールパネル」の仕上がり

完成形はこのようになります。

invorecipuserf001

ユーザーフォームには、このようにコマンドボタン、テキストボックスやマルチページなどを設置します。

ユーザーフォームの最初の設定方法に不安な方は、こちらの記事を参考にしてください。

ユーザーフォームの挿入と表示は簡単 エクセルVBA

領収書ベース作成セクション

コマンドボタンの設置

コマンドボタンをユーザーフォームに設置する基本はこちらを参考にしてください。

コマンドボタンをユーザーフォームに設置する

「テンプレート作成」ボタン

プロパティ

invorecipuserf002
プロパティ項目
(オブジェクト名)テンプレート作成
BackColorデフォルト(好みで変更可能)
Captionテンプレート作成
FontMSゴシック(好みで変更可能)
ForeColorデフォルト(好みで変更可能)
TabIndex全コントロール設置後に一度に設定

イベントプロシージャー(ユーザーフォームモジュールに記述)

以下のコードを記述します。

VBA
Private Sub テンプレート作成_Click()
        Call Module2.領収書Temp
        Call Module2.セル表示設定
End Sub

「テンプレートクリア」ボタン

プロパティ

invorecipuserf003
プロパティ項目
(オブジェクト名)テンプレートクリア
BackColorデフォルト(好みで変更可能)
Captionテンプレートクリア
FontMSゴシック(好みで変更可能)
ForeColorデフォルト(好みで変更可能)
TabIndex全コントロール設置後に一度に設定

イベントプロシージャー

VBA
Private Sub テンプレートクリア_Click()
        Call Module2.テンプレートオールクリア
End Sub

「発行者保存欄作成」ボタン

プロパティ

invorecipuserf004
プロパティ項目
(オブジェクト名)発行者保存欄作成
BackColorデフォルト(好みで変更可能)
Caption発行者保存欄作成
FontMSゴシック(好みで変更可能)
ForeColorデフォルト(好みで変更可能)
TabIndex全コントロール設置後に一度に設定

イベントプロシージャー

VBA
Private Sub 発行者保存欄作成_Click()
        Call Module3.印影Temp
End Sub

「発行者データクリア」ボタン

プロパティ

invorecipuserf005
プロパティ項目
(オブジェクト名)発行者データクリア
BackColorデフォルト(好みで変更可能)
Caption発行者データクリア
FontMSゴシック(好みで変更可能)
ForeColorデフォルト(好みで変更可能)
TabIndex全コントロール設置後に一度に設定

イベントプロシージャー

VBA
Private Sub 発行者データクリア_Click()
        Call Module3.印影オールクリア
End Sub

発行年月日セクション

テキストボックスの設置

ユーザーサイドで領収書発行日を入力してもらいます。

テキストボックスをユーザーフォームに設置する基本はこちらを参考にしてください。

テキストボックスをユーザーフォームに設置する

「元号」テキストボックス

プロパティ

invorecipuserf006
プロパティ項目
(オブジェクト名)元号
BackColorデフォルト(好みで変更可能)
FontMSゴシック
ForeColorデフォルト(好みで変更可能)
IMEModeデフォルト
TabIndex全コントロール設置後に一度に設定
Text元号

「ねん」テキストボックス

プロパティ

invorecipuserf007
プロパティ項目
(オブジェクト名)ねん
BackColorデフォルト(好みで変更可能)
FontMSゴシック
ForeColorデフォルト(好みで変更可能)
IMEModeデフォルト
TabIndex全コントロール設置後に一度に設定
Textねん

「つき」テキストボックス

プロパティ

invorecipuserf008
プロパティ項目
(オブジェクト名)つき
BackColorデフォルト(好みで変更可能)
FontMSゴシック
ForeColorデフォルト(好みで変更可能)
IMEModeデフォルト
TabIndex全コントロール設置後に一度に設定
Textつき

「にち」テキストボックス

プロパティ

invorecipuserf009
プロパティ項目
(オブジェクト名)にち
BackColorデフォルト(好みで変更可能)
FontMSゴシック
ForeColorデフォルト(好みで変更可能)
IMEModeデフォルト
TabIndex全コントロール設置後に一度に設定
Textにち

コマンドボタンの設置

コマンドボタンをユーザーフォームに設置する基本はこちらを参考にしてください。

コマンドボタンをユーザーフォームに設置する

「日付入力」ボタン

プロパティ

invorecipuserf010
プロパティ項目
(オブジェクト名)日付入力
BackColorデフォルト(好みで変更可能)
Caption日付入力
FontMSゴシック(好みで変更可能)
ForeColorデフォルト(好みで変更可能)
TabIndex全コントロール設置後に一度に設定

イベントプロシージャー

VBA
Private Sub 日付入力_Click()
        Gen = コントロールパネル.Controls("元号").Value
        Nen = コントロールパネル.Controls("ねん").Value
        Tuk = コントロールパネル.Controls("つき").Value
        Nit = コントロールパネル.Controls("にち").Value
End Sub

印刷設定セクション

マルチページの設置

マルチページを使って、「単独印刷」と「連続印刷」の2つのパターンを作ります。

マルチページをユーザーフォームに設置する基本はこちらを参考にしてください。

マルチページをユーザーフォームに設置する

「MultiPage」マルチページ

プロパティ

タブ表示の文字設定を変更して視認性を上げます。

invorecipuserf011a

「単独印刷」ページ

タブ設定

プロパティ

「Caption」はタグ名の表示になります。

「Index」はタグの重なり順です(0から始まります。)

invorecipuserf012

(使用説明)ラベル設定

プロパティ

「Caption」を記入することで、文章を表示させることが出来ます。

「オブジェクト名」は、判別がつき易くするために変更しています。

invorecipuserf013
invorecipuserf014

(宛名確認)ラベル設定

プロパティ

プロパティの設定は他のラベルと同様です。

invorecipuserf015

イベントプロシージャー

このラベルをクリックしたときにイベントが発生するようにします。

VBA
Private Sub 印刷宛名_Click()
        Call Module1.宛名確認
End Sub

「印刷スタート」ボタン

プロパティ

invorecipuserf016.jpg
プロパティ項目
(オブジェクト名)一件印刷
BackColorデフォルト(好みで変更可能)
Caption印刷スタート
FontMSゴシック(好みで変更可能)
ForeColorデフォルト(好みで変更可能)
TabIndex全コントロール設置後に一度に設定

イベントプロシージャー

VBA
Private Sub 一件印刷_Click()
        Call Module1.一件を印刷
End Sub

「連続印刷」ページ

タブ設定

プロパティ

「Caption」はタグ名の表示になります。

「Index」はタグの重なり順です(0から始まります。

invorecipuserf017a

(使用説明)ラベル設定

プロパティ

「Caption」を記入することで、文章を表示させることが出来ます。

「オブジェクト名」は、判別がつき易くするために変更しています。

invorecipuserf020

「伝票番号始点」テキストボックス

プロパティ

「オブジェクト名」は、伝票番号始点とします。

invorecipuserf018

「伝票番号終点」テキストボックス

プロパティ

「オブジェクト名」は、伝票番号終点とします。

invorecipuserf019

「入力確認」ボタン

プロパティ

invorecipuserf021
プロパティ項目
(オブジェクト名)入力確認ボタン
BackColorデフォルト(好みで変更可能)
Caption入力確認
FontMSゴシック(好みで変更可能)
ForeColorデフォルト(好みで変更可能)
TabIndex全コントロール設置後に一度に設定

イベントプロシージャー

VBA
Private Sub 入力確認ボタン_Click()
        コントロールパネル.番号確認.Caption = "「" _
            & Me.伝票番号始点.Value & "」から" & "「" _
            & Me.伝票番号終点.Value & "」まで印刷します。"
        Call Module1.領収書連続印刷準備
End Sub

(番号確認)ラベル設定

プロパティ

「Caption」を記入することで、文章を表示させることが出来ます。

「オブジェクト名」は、判別がつき易くするために変更しています。

invorecipuserf022

イベントプロシージャー

「入力確認」ボタンをクリックしたときに発生するイベントで、この「番号確認」ラベルに設定したデータが表示されるようにしています。

「番号確認」ラベルをクリックしたときは、表示されている文字データをクリアするコード設置します。

VBA
Private Sub 番号確認_Click()
        コントロールパネル.番号確認.Caption = ""
End Sub

「印刷スタート」ボタン

プロパティ

invorecipuserf023
プロパティ項目
(オブジェクト名)印刷開始
BackColorデフォルト(好みで変更可能)
Caption印刷開始
FontMSゴシック(好みで変更可能)
ForeColorデフォルト(好みで変更可能)
TabIndex全コントロール設置後に一度に設定

イベントプロシージャー

VBA
Private Sub 印刷開始_Click()
    Dim rea As Long
        rea = MsgBox("印刷を始めますか?", _
            vbYesNo + vbQuestion + vbDefaultButton2, _
                            "インボイス領収書作成")
        If rea = vbNo Then Exit Sub
        Call Module1.領収書連続印刷実行
End Sub

タブ・インデックスの設定

ユーザーフォームにすべてのコントロールを配置し完成させたところで、タブオーダーを設定していきます。

今回は、マルチページを使用したので、

  1. ユーザーフォームに直接に設置したコントロール
  2. マルチページの「単独印刷」ページに設置したコントロール
  3. マルチページの「連続印刷」ページに設置したコントロール

の3つに分けて順番を設定していきます。

①ユーザーフォーム上の何もないところで右クリックメニューを表示します。

invorecipuserf026
矢印下001

項目を上下に移動させて順番を整えてください。

invorecipuserf027

同様に②、③のマルチページの場合も行ってください。

まとめ

invorecipuserf025

ユーザーフォーム「コントロールパネル」を作成しました。

各コントロールの配置やイベントプロシージャーの記述を行いました。

イベントプロシージャーから呼び出した、プロシージャーについて、印刷処理に関するものは、次回記事で説明を行います。

エクセルVBAを独習するのに参考書は欠かせません。 参考書選びは自分に合った「相棒」にできるものを選んでいきたいです。

vbastudyeyecatch2 エクセルVBAの独習でおすすめ参考書を7冊選ぶ。良書との出会いは大切です

今回の記事はここまでです。   最後までご覧いただき有難うございました。

エクセルVBA最速理解で必要な知識を集めよう!

エクセルVBA業務ツールで日常の業務改善を行いましょう。

VBAコードの記述記事においては、その記述には細心の注意をしたつもりですが、掲載のVBAコードは動作を保証するものではりません。 あくまでVBAの情報の一例として掲載しています。 掲載のVBAコードのご使用は、自己責任でご判断ください。 万一データ破損等の損害が発生しても当方では責任は負いません。

アンケートでポイ活しよう!!

アンケートに答えれば答えるほど ”使える” ポイントがたまります。

NTTコム サーチ

af_banner01

Dstyle web

dstyleweb_logo
dstyle_320x50-min