エクセルをつかっている場合、一覧表から項目を拾い出して、納品書や請求書をつくりたくなってきませんか?
今回は、売上データから、相手先や金額などがはいった請求書をマクロで自動的に作りたいと思います。
ここでは、Microsoft Excel を使用して VBA マクロを作成する手順を説明します。
ステップ1: データの準備
- 売上データの準備
- Excel シートに売上データを入力します。例えば、以下のようにします。
- シート名:
SalesData
- A列: 日付
- B列: 顧客名
- C列: 商品名
- D列: 数量
- E列: 単価
- F列: 合計金額
- シート名:
- Excel シートに売上データを入力します。例えば、以下のようにします。
- 請求書テンプレートの準備
- 別のシートに請求書のテンプレートを作成します。例えば、以下のようにします。
- シート名:
InvoiceTemplate
- 必要な情報を適切なセルに配置します(例: 顧客名、請求日、商品明細、合計金額など)。
- シート名:
- 別のシートに請求書のテンプレートを作成します。例えば、以下のようにします。
ステップ2: マクロの作成
- VBA エディターを開く
- Excel で
Alt + F11
を押して、VBA エディターを開きます。 Insert
メニューからModule
を選択し、新しいモジュールを作成します。
- Excel で
- VBA コードを入力
- 以下のサンプルコードを新しいモジュールに貼り付けます。
Sub CreateInvoices()
Dim wsSales As Worksheet
Dim wsTemplate As Worksheet
Dim wsInvoice As Worksheet
Dim lastRow As Long
Dim invoiceRow As Long
Dim invoiceNum As Integer
Dim customerName As String
Dim i As Long
' シートの参照
Set wsSales = Worksheets("SalesData")
Set wsTemplate = Worksheets("InvoiceTemplate")
' 売上データの最終行を取得
lastRow = wsSales.Cells(wsSales.Rows.Count, "A").End(xlUp).Row
' 請求書番号の初期化
invoiceNum = 1
' 売上データをループ
For i = 2 To lastRow
customerName = wsSales.Cells(i, 2).Value
' テンプレートシートをコピーして新しい請求書シートを作成
wsTemplate.Copy After:=Sheets(Sheets.Count)
Set wsInvoice = ActiveSheet
' 請求書シートにデータを入力
wsInvoice.Name = "Invoice" & invoiceNum
wsInvoice.Cells(1, 1).Value = "請求書番号: " & invoiceNum
wsInvoice.Cells(2, 1).Value = "顧客名: " & customerName
wsInvoice.Cells(3, 1).Value = "請求日: " & wsSales.Cells(i, 1).Value
' 商品明細の入力
invoiceRow = 5 ' 明細開始行
wsInvoice.Cells(invoiceRow, 1).Value = "商品名"
wsInvoice.Cells(invoiceRow, 2).Value = "数量"
wsInvoice.Cells(invoiceRow, 3).Value = "単価"
wsInvoice.Cells(invoiceRow, 4).Value = "合計金額"
invoiceRow = invoiceRow + 1
wsInvoice.Cells(invoiceRow, 1).Value = wsSales.Cells(i, 3).Value
wsInvoice.Cells(invoiceRow, 2).Value = wsSales.Cells(i, 4).Value
wsInvoice.Cells(invoiceRow, 3).Value = wsSales.Cells(i, 5).Value
wsInvoice.Cells(invoiceRow, 4).Value = wsSales.Cells(i, 6).Value
' 請求書番号の更新
invoiceNum = invoiceNum + 1
Next i
End Sub
ステップ3: マクロの実行
- VBA エディターを閉じる
Alt + Q
を押して VBA エディターを閉じます。
- マクロの実行
- Excel のリボンで
開発
タブをクリックし、マクロ
ボタンをクリックします。 CreateInvoices
を選択して実行します。
- Excel のリボンで
このコードは、SalesData
シートの売上データをもとに、InvoiceTemplate
シートをコピーして請求書を作成します。各請求書には、売上データに基づいた商品明細と顧客情報が含まれます。各請求書は新しいシートとして追加されます。
何なりとお申し付けください。