取引業者の名簿と業者ごとの請求金額の一覧表から、請求書を作るマクロの説明をします。

請求書の様式にデータを組み込んで、請求書を作るマクロです。
ワークシートSheet1→請求書送付先
ワークシートSheet2→請求額合計
ワークシートSheet3→請求書作成

ワークシート全体をコピーして、ブックに新しいワークシートを追加します。

複数の文字列を、文字列演算子で1つにまとめる方法を説明します。

日付を取得する関数を使って、請求書に日付を埋め込みます。

スポンサーリンク

元になるデータの準備

サンプルコード
 コード内、Wクリックでコピーできます。
Sub サンプル0020()

    '変数の宣言
    Dim WS1 As Object, WS2 As Object, WS3 As Object

    'Setステートメント
    Set WS1 = Worksheets("sheet1")
    Set WS2 = Worksheets("sheet2")
    Set WS3 = Worksheets("sheet3")
       
    With WS1
        .Range("A1") = "請求書送付先"
        .Range("A3") = "業者コード"
        .Range("B3") = "業者名"
        .Range("C3") = "担当者"
        .Range("D3") = "電話番号"
          
        .Range("A4") = "A0001"
        .Range("A5") = "A0002"
        .Range("A6") = "A0003"
  
        .Range("B4") = "山形食品"
        .Range("B5") = "ゼネラルマート"
        .Range("B6") = "どんと食品"
          
        .Range("C4") = "鈴木"
        .Range("C5") = "山本"
        .Range("C6") = "石井"
  
        .Range("D4") = "03-3333-2222"
        .Range("D5") = "044-222-6666"
        .Range("D6") = "03-3333-5555"
    End With
      
    With WS2
        .Range("A1") = 8
        .Range("B1") = "月分請求額合計"
        .Range("A3") = "業者コード"
        .Range("B3") = "請求金額"
        
        .Range("A4") = "A0001"
        .Range("A5") = "A0002"
        .Range("A6") = "A0003"
        
        .Range("B4") = 479000
        .Range("B5") = 1176000
        .Range("B6") = 778000
         
         'セルの書式を通貨にする
        .Range("B4:B6").NumberFormatLocal = "\#,##0;\-#,##0"
    End With
     
    'セルの背景色を変える
    WS1.Range("A3:D3").Interior.ColorIndex = 4
    WS2.Range("A3:B3").Interior.ColorIndex = 4
     
    '範囲のセルの列幅を自動調整する
    WS1.Columns("A:D").AutoFit
    WS2.Columns("A:B").AutoFit
     
    'セルの範囲に罫線を引く
    WS1.Range("A3:D6").CurrentRegion.Borders.LineStyle = xlContinuous
    WS2.Range("A3:B6").CurrentRegion.Borders.LineStyle = xlContinuous
      
  With WS3
         'セルの範囲に罫線を引く
        .Range("A5").Borders(xlEdgeBottom).LineStyle = xlContinuous
        .Range("B8:D8").Borders(xlEdgeTop).LineStyle = xlContinuous
        .Range("B8:D8").Borders(xlEdgeBottom).LineStyle = xlContinuous
        .Range("B8:D8").Borders(xlEdgeLeft).LineStyle = xlContinuous
        .Range("B8:D8").Borders(xlEdgeRight).LineStyle = xlContinuous
        .Range("F3").Borders(xlEdgeTop).LineStyle = xlContinuous
        .Range("F3").Borders(xlEdgeBottom).LineStyle = xlContinuous
        .Range("F3").Borders(xlEdgeLeft).LineStyle = xlContinuous
        .Range("F3").Borders(xlEdgeRight).LineStyle = xlContinuous
        
        .Range("C2") = "請求書"
        .Range("C2").Font.Size = 20
        .Range("B5") = "様"
        .Range("C8") = "月分請求額"
        .Range("G3") = "発行"
        .Range("F13") = "(株) 青山商会 経理部 山口"
        .Range("F14") = "〒333 東京都港区六本木1-1-1"
        
        '列の幅を指定する
        .Columns("A").ColumnWidth = 30
        .Columns("C").ColumnWidth = 12
        .Columns("D").ColumnWidth = 12
        .Columns("F").ColumnWidth = 12
  End With
   
  WS3.Select
 'グリッド線を非表示にする
  ActiveWindow.DisplayGridlines = False
   
End Sub

元のデータの作成方法

1.デスクトップに作成した「確認用マクロのコピー」を開きます。
「開発」→「Visual Basic」でVBEを起動します。

2.「Module1」をWクリックして、「Module1」のコードウィンドウを表示します。
「Module1」に「サンプル0020」をコピーして貼り付けます。

3.「請求書データ」のマクロを実行すると、次の3つのデータが入ります。
•Sheet1

•Sheet2

•Sheet3

スポンサーリンク

請求書作成のマクロの作り方

Sheet1とSheet2は請求書のデータです。
Sheet3は、請求書の雛形です。
請求書作成のマクロを実行すると、請求書の雛形をコピーしてデータを入力し、新しくシートを作成します。

サンプルコード
 コード内、Wクリックでコピーできます。
Sub サンプル0025()
 
    Dim WS1 As Object
    Dim WS2 As Object
    Dim WS3 As Object
 
    Set WS1 = Worksheets("sheet1")
    Set WS2 = Worksheets("sheet2")
    Set WS3 = Worksheets("sheet3")
    
    'WS3をコピーして、WS3のあとにワークシートを追加する
    WS3.Copy after:=WS3
    With ActiveSheet
        'Nameプロパティでシート名を変える
        '「&演算子」で文字列を結合する
        .Name = WS1.Range("B4") & "請求書"
         
        '「" "」スペースを入れる
        .Range("A5") = WS1.Range("B4") & " " & WS1.Range("C4")
        .Range("B8") = WS2.Range("A1")
        .Range("D8").NumberFormatLocal = "\#,##0;\-#,##0"
        .Range("D8") = WS2.Range("B4")
        .Range("F3") = Date
        .Tab.ColorIndex = 6
    End With
    
    WS3.Copy after:=ActiveSheet
    With ActiveSheet
        .Name = WS1.Range("B5") & "請求書"
        .Range("A5") = WS1.Range("B5") & " " & WS1.Range("C5")
        .Range("B8") = WS2.Range("A1")
        .Range("D8").NumberFormatLocal = "\#,##0;\-#,##0"
        .Range("D8") = WS2.Range("B5")
        .Range("F3") = Date
        .Tab.ColorIndex = 8
    End With
    
    WS3.Copy after:=ActiveSheet
    With ActiveSheet
        .Name = WS1.Range("B6") & "請求書"
        .Range("A5") = WS1.Range("B6") & " " & WS1.Range("C6")
        .Range("B8") = WS2.Range("A1")
        .Range("D8").NumberFormatLocal = "\#,##0;\-#,##0"
        .Range("D8") = WS2.Range("B6")
        .Range("F3") = Date
        .Tab.ColorIndex = 4
    End With
End Sub

請求書作成のマクロの作り方

1.「Module2」をWクリックして、「Module2」のコードウィンドウを表示します。
「Module2」に「サンプル0025」をコピーして貼り付けます。

2.マクロの画面で「請求書作成」を選択して、「実行」をクリックします。

3.マクロの実行結果は次のようになります。
業者ごとの請求書が作られます。

以上で「請求書を作るマクロ」の説明を終わります。




おすすめの記事