ゴリラストロングの雑記帳

月収10万円の広告収入を目指す自称専業ライターのブログです。




【Excel VBA】エクセルマクロ。売上表から取引先別の請求書を作成。




どうも、ゴリラストロングです。

 

 

 

本日もエクセルマクロの記事を書きたいと思います。

よくある、売上表から取引先別で請求書を作成するというモノです。

 

 

 

以下が売上表データです。

f:id:gorilla-strong:20200219131612p:plain

以下が請求書のテンプレです。

f:id:gorilla-strong:20200219131708p:plain

 

 

スポンサーリンク

 

 

 

以下が実行後のデータのうちの一つです。

※今回は5シート分データが作成されます。

f:id:gorilla-strong:20200219131848p:plain

f:id:gorilla-strong:20200219132256p:plain

 

以下がソースコードです。

Sub 請求書作成()

    Dim UAH As Object
        Set UAH = Workbooks("ゴリラストロングの雑記帳.xlsm").Worksheets("売上表")

    Dim lastrowA As Long
        lastrowA = UAH.Cells(Rows.Count, 1).End(xlUp).Row

        UAH.Range("A:A").Copy UAH.Range("G1")

        UAH.Range("G:G").RemoveDuplicates (Array(1))

        UAH.Range("B1") = WorksheetFunction.CountA(Range("G:G")) - 2

    Dim kennsuu As Long
    kennsuu = UAH.Range("B1")

    Dim SKST As Object
    Set SKST = Workbooks("ゴリラストロングの雑記帳.xlsm").Worksheets("請求書テンプレ")

        Worksheets.Add After:=Worksheets("請求書テンプレ"), Count:=kennsuu

    Dim Snum As Long
    Snum = 12

        For i = Snum To Snum + kennsuu - 1

            Worksheets(i).name = UAH.Cells(i - 9, 7)

        Next

    Dim lastrowG As Long
    lastrowG = UAH.Cells(Rows.Count, 7).End(xlUp).Row

        For j = 3 To lastrowG

            Dim tokuisakimei As String
            tokuisakimei = UAH.Range("G" & j)

        SKST.Cells.Copy Workbooks("ゴリラストロングの雑記帳.xlsm").Worksheets(tokuisakimei).Range("A1")

        Next

        For k = Snum To Snum + kennsuu - 1

            Workbooks("ゴリラストロングの雑記帳.xlsm").Worksheets(k).Cells(3, 1) = Worksheets(k).name

        Next

        For p = Snum To Snum + kennsuu - 1

            Dim n As Long
            n = 6

            For m = 3 To 12

                If UAH.Range("A" & m) = Workbooks("ゴリラストロングの雑記帳.xlsm").Worksheets(p).Range("A3") Then
                    Workbooks("ゴリラストロングの雑記帳.xlsm").Worksheets(p).Cells(n, 1) = UAH.Cells(m, 2)
                    Workbooks("ゴリラストロングの雑記帳.xlsm").Worksheets(p).Cells(n, 2) = UAH.Cells(m, 3)
                    Workbooks("ゴリラストロングの雑記帳.xlsm").Worksheets(p).Cells(n, 3) = UAH.Cells(m, 4)
                    Workbooks("ゴリラストロングの雑記帳.xlsm").Worksheets(p).Cells(n, 4) = UAH.Cells(m, 5)

            n = n + 1

                End If

            Next

        Next

    For q = Snum To Snum + kennsuu - 1

        Workbooks("ゴリラストロングの雑記帳.xlsm").Worksheets(q).Range("D11") = WorksheetFunction.Sum(Workbooks("ゴリラストロングの雑記帳.xlsm").Worksheets(q).Range("D6:D9"))

    Next

End Sub

 変数を使いすぎて自分でも解読に時間がかかりますwww

3時間くらい作成にかかりました。

もしお時間があれば解読してみてください。

 

以上、ゴリラストロングでした。

 

 

スポンサーリンク