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

販売実績のエクセルデータを利用して、請求書を自動的に作成するエクセルマクロを紹介しています。

前回は、シートに入力した取引先と日付をマクロに取り込むところまででした。
今回は、請求書作成マクロを完成させます。

請求書を作成するマクロ

Sub 請求書作成()
    
    Dim BillDest As Integer
    Dim BillDate As Date
    Dim BillName As String
    Dim BillPost As String
    Dim BillAddr As String
    
    ' 入力した取引先と日付を取込
    With ActiveSheet
        BillDest = .Range("E3").Value
        BillDate = .Range("C5").Value
    End With
    
    ' 取引先の№から取引先名に変換
    With ThisWorkbook.Worksheets("取引先")
        BillName = .Range("A1").Offset(BillDest, 0).Value
        BillPost = .Range("A1").Offset(BillDest, 1).Value
        BillAddr = .Range("A1").Offset(BillDest, 2).Value
    End With
    
    ' 請求書に取引先名~住所を貼り付け
    With ThisWorkbook.Worksheets("請求書")
        .Range("B3").Value = BillName
        .Range("C5").Value = "〒" & BillPost
        .Range("C6").Value = BillAddr
    End With
    
    ' 条件に合った販売実績を請求書に貼り付け
    Dim selRG As Range
    Dim selRW As Range
    Dim sLine As Integer
    Dim iName As String
    Dim iNum As Integer
    Dim iAmt As Integer
    
    sLine = 0
    
    With ThisWorkbook.Worksheets("販売実績")
        Set selRG = .Range(.Range("A2"), .Range("A2").End(xlDown))
            For Each selRW In selRG

                ' 条件に合った行かを判定
                If IsDate(selRW.Value) Then
                    If Year(selRW.Value) = Year(BillDate) And Month(selRW.Value) = Month(BillDate) And _
                       .Cells(selRW.Row, 2) = BillName Then
                        
                        ' 請求明細
                        iName = .Cells(selRW.Row, 3)
                        iNum = .Cells(selRW.Row, 4)
                        iAmt = .Cells(selRW.Row, 5)
                        
                        ' 請求書に張り付け
                        sLine = sLine + 1
                        With ThisWorkbook.Worksheets("請求書")
                            .Cells(sLine + 11, 2) = sLine
                            .Cells(sLine + 11, 3) = iName
                            .Cells(sLine + 11, 11) = iNum
                            .Cells(sLine + 11, 12) = "コ"
                            .Cells(sLine + 11, 13) = iAmt
                        End With
                    End If
                End If
            Next selRW
        Set selRG = Nothing
    End With
    
End Sub

マクロで作成した請求書

マクロを実行するとこんな請求書ができます。

請求書サンプル

考察

ボタン1つクリックするだけで請求書を作成するマクロが60行程度です。

販売実績のシートに都度販売データを入力し、締め日が来たら、取引先と締め日を選択してボタン1つクリックするだけです。締め日に販売データをかき集めてエクセルに入力したり、電卓をたたいたりしなくでも良いんです。

こんな風にマクロを活用すれば、請求書が簡単に出来ます。といった例ですので、改良点はたくさんあります。

  • 販売実績のシートで取引先の名前を間違えて入力すると請求書には出てきません。
  • この例では、締め日が月末ですが、通常は取引先毎に締め支払日が異なるはずです。
  • 請求№・請求日やお支払い期限の項目も締め日や支払サイトなどの情報があれば請求書に表示できるはずです。

などなど…

いかがでしたか

エクセルマクロを使った請求書作成ツールの紹介は今回で終了です。

ではまた

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