エクセルをつかっている場合、一覧表から項目を拾い出して、納品書や請求書をつくりたくなってきませんか?
1.売上データから、相手先や金額などがはいった請求書をマクロで自動的に作る
ここでは、Microsoft Excel を使用して VBA マクロを作成する手順を説明します。
1.データの準備
売上データの準備
- Excel シートに売上データを入力します。例えば、以下のようにします。
- シート名:
SalesData
- A列: 日付
- B列: 顧客名
- C列: 商品名
- D列: 数量
- E列: 単価
- F列: 合計金額
- シート名:
請求書テンプレートの準備
- 別のシートに請求書のテンプレートを作成します。例えば、以下のようにします。
- シート名:
InvoiceTemplate
- 必要な情報を適切なセルに配置します(例: 顧客名、請求日、商品明細、合計金額など)。
- シート名:
2.マクロの作成
1.VBA エディターを開く
- Excel で
Alt + F11
を押して、VBA エディターを開きます。 Insert
メニューからModule
を選択し、新しいモジュールを作成します。
2.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.マクロの実行
1.VBA エディターを閉じる
Alt + Q
を押して VBA エディターを閉じます。
2.マクロの実行
- Excel のリボンで
開発
タブをクリックし、マクロ
ボタンをクリックします。 CreateInvoices
を選択して実行します。
このコードは、SalesData
シートの売上データをもとに、InvoiceTemplate
シートをコピーして請求書を作成します。各請求書には、売上データに基づいた商品明細と顧客情報が含まれます。各請求書は新しいシートとして追加されます。
あとがき
まず、Excelのマクロっていうもんを使うねんけど、ちょっとしたプログラムやさかいに、最初は難しそうに見えるかもしれへん。でも、落ち着いて順番にやってみたら、できるようになるで。
1. 準備
まず、売上データがExcelに入ってる前提やで。そのデータには、相手先の名前、住所、請求金額、日付とかが入ってることを確認しときや。
2. マクロを開く
Excelを開いて、Alt
+ F11
キーを押して「VBAエディタ」っちゅう画面を開くんや。これがマクロのコードを書くとこやねん。
3. マクロを作る
次に、新しいマクロを作るために「挿入」→「モジュール」を選んでや。ほな、白い画面が出てくるから、そこにコードを書いていくんや。例として、こんなコードを使ってみるとええで:
Sub MakeInvoice()
Dim ws As Worksheet
Dim invoice As Worksheet
Dim lastRow As Long
Dim i As Long
' 売上データのシートを指定
Set ws = ThisWorkbook.Sheets("売上データ")
lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
' 請求書のフォーマットシートをコピーして、新しいシートにする
Set invoice = ThisWorkbook.Sheets("請求書フォーマット")
For i = 2 To lastRow
invoice.Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
With ActiveSheet
.Name = "請求書_" & ws.Cells(i, 1).Value
.Range("B5").Value = ws.Cells(i, 1).Value ' 相手先
.Range("B6").Value = ws.Cells(i, 2).Value ' 住所
.Range("D8").Value = ws.Cells(i, 3).Value ' 請求金額
.Range("D9").Value = ws.Cells(i, 4).Value ' 日付
End With
Next i
End Sub
4. コードの説明
ws
は売上データのシートを指してるねん。invoice
は請求書のテンプレートシートや。これを使って新しい請求書シートを作るんや。For
ループの中で、売上データを一行ずつ読み取って、請求書を作っていくで。
5. マクロを実行
コードを書いたら、Excelの画面に戻って、Alt
+ F8
キーを押して、このマクロを実行してみてや。「MakeInvoice」って名前のマクロが見えるから、それを選んで「実行」ボタンを押すんや。ほな、売上データに基づいて、自動で請求書が作られるはずやで。
6. 調整と確認
もし、何かうまくいかんところがあったら、もう一回コードを見直して、修正してみてや。最初は慣れへんかもしれんけど、練習したらあんたもマクロの達人やで!
こんな感じで、マクロを使うと請求書作りが一気に楽になるんや。頑張ってな!
何なりとお申し付けください。