エクセルマクロを使った請求書作成ツール(2)

先週に引き続き請求書作成ツールを作っていきます。

今回は、請求先名と請求年月の入力方法と、入力した値を、請求書を作成するマクロに知らせる(引き渡す)部分を考えます。

取引先名と請求年月を入力するシートを作成

新しいシートに取引先名と請求年月を入力するセルと請求書の作成を指示するボタン(フォームコントロール)をシート上に配置します。

入力フォーム

取引先名を入力するセルに取引先名を入力し、請求年月を入力するセルに日付を入力します。
入力できたら、請求書作成ボタンをクリックして、そのボタンに関連づいているマクロでC3(取引先名)とC5(請求年月)のセルを読み取り、請求書を作成する流れです。

請求年月は販売実績シートの売上日が1日~月末日までのデータを選択するための年月です。
売上日の年月と請求年月が同じであればよいので、日は何でも良いのです。
見栄えもありますので、請求年月入力セルの表示形式を変更して、年月のみ表示するようにします。

待ってください!!
取引先名のセルに入力した取引先名おかしくないですか?しんせつ電株式会社?正しくは、しんせつ電株式会社ですよね。

入力ミスをなるべく少なく

請求年月もそうですが、取引先名が少しでも間違っていると、データが無いことになってしまい、請求書が作成されません。

手入力するとこんな間違いがあるとも限りません。

そこで、コンボボックス(フォームコントロール)を使用します。
取引先シートの取引先から取引先名を1つ選んで選択できるようにします。

C3セルの位置にコンボボックスを配置し、コントロールの書式を設定します。

コンボボックスのプロパティ

入力範囲には、取引先シートの取引先名の範囲を、
リンクするセルには、選択した取引先の行番号を設定するセルを指定します。

入力シート(コンボボックス)

これで、コンボボックスの設定ができました。
コンボボックスをクリックすると、取引先名の一覧が表示されます。
その一覧の中から、目的の取引先名を選択すると、E3セルに選択した取引先の
行番号が表示されるようになっています。

請求書を作成するマクロでは、この行番号を読み取って、取引先シートの何行目か(どの取引先か)を判別できます。

マクロに取引先と請求年月を指示する

請求書作成ボタンをクリックして、請求書作成マクロを起動し取引先の行番号と請求年月をセルから取り込むところを作成します。

請求書作成ボタンを右クリックしてマクロの登録を選択します。

マクロの登録
マクロ名に請求書作成と入力し新規作成をクリックします。
以下のようなマクロ(コード)を入力するウインドウが開きます。

マクロ記述ウィンドウ
ソースコードはこんな感じです。

Sub 請求書作成()
    Dim BillDest As Integer
    Dim BillDate As Date
    Dim BillName As String
    
    ' 取引先の行番号と請求年月の取込
    With ActiveSheet
        BillDest = .Range("E3").Value
        BillDate = .Range("C5").Value
    End With
    
    ' 取引先の行番号から取引先名に変換
    With ThisWorkbook.Worksheets("取引先")
        BillName = .Range("A1").Offset(BillDest, 0).Value
    End With
    
End Sub

いかがでしたか

今回は、取引先名と請求年月の入力方法を検討してみました。

次回は、いよい販売実績から請求書を作成するマクロ本体を作成します。

コメントの受付は終了しました。