'【VBA】【請求書自動印刷システム】(3日目(最終日) 完成ソース) 'グローバル変数宣言 Dim data_gyou_count As Integer Dim data_retu_count As Integer Dim tanka As Integer Sub my_print_seikyusyo() '変数宣言 Dim hinmoku_gyou_count As Integer '変数初期化 data_gyou_count = 2 data_retu_count = 5 hinmoku_gyou_count = 19 'シート「請求先データ」の「会社名」が途切れるまでデータを移し替え Do While Worksheets("請求先データ").Cells(data_gyou_count, 1).Value <> "" '会社名 Worksheets("請求書").Range("A5").Value = Worksheets("請求先データ").Cells(data_gyou_count, 1).Value '郵便番号 Worksheets("請求書").Range("A8").Value = "〒" & Worksheets("請求先データ").Cells(data_gyou_count, 2).Value '住所1 Worksheets("請求書").Range("A9").Value = Worksheets("請求先データ").Cells(data_gyou_count, 3).Value '住所2 Worksheets("請求書").Range("A10").Value = Worksheets("請求先データ").Cells(data_gyou_count, 4).Value '「請求額」項目になるまで品目データを移し替え(品目の増加・減少に備えて) Do While Worksheets("請求先データ").Cells(1, data_retu_count).Value <> "請求額" '品目ごとの単価を選び出す Call my_choose_tanka '各品目、数量が「1」以上の時だけデータを書き出す If Worksheets("請求先データ").Cells(data_gyou_count, data_retu_count).Value > 0 Then '品目名 Worksheets("請求書").Cells(hinmoku_gyou_count, 1).Value = _ Worksheets("請求先データ").Cells(1, data_retu_count).Value '品目ごとの単価 Worksheets("請求書").Cells(hinmoku_gyou_count, 4).Value = tanka '数量 Worksheets("請求書").Cells(hinmoku_gyou_count, 6).Value = _ Worksheets("請求先データ").Cells(data_gyou_count, data_retu_count).Value '価格 Worksheets("請求書").Cells(hinmoku_gyou_count, 7).Value = _ tanka * Worksheets("請求先データ").Cells(data_gyou_count, data_retu_count).Value hinmoku_gyou_count = hinmoku_gyou_count + 1 End If data_retu_count = data_retu_count + 1 Loop '印刷 Worksheets("請求書").PrintOut '書き込んだデータを消去 Worksheets("請求書").Range("A5").Value = "" Worksheets("請求書").Range("A8").Value = "" Worksheets("請求書").Range("A9").Value = "" Worksheets("請求書").Range("A10").Value = "" Worksheets("請求書").Range("A19:G21").Value = "" '行を一つ進める・変数再初期化 data_retu_count = 5 data_gyou_count = data_gyou_count + 1 hinmoku_gyou_count = 19 '「会社名」が「計」まで行ったらループを抜ける If Worksheets("請求先データ").Cells(data_gyou_count, 1).Value = "計" Then Exit Do End If Loop MsgBox "完了" End Sub 'シート「単価一覧」から品目ごとの単価を選び出す Sub my_choose_tanka() Dim i As Integer i = 2 Do While Worksheets("単価一覧").Cells(i, 1).Value <> "" If Worksheets("単価一覧").Cells(i, 1).Value = Worksheets("請求先データ").Cells(1, data_retu_count).Value Then tanka = Worksheets("単価一覧").Cells(i, 2).Value Exit Do Else tanka = 0 End If i = i + 1 Loop End Sub