では「在庫表」を自動生成するサンプルコードを作ってみましょう。初心者でも理解しやすいように、商品名・数量・単価・金額を自動で入力し、見出しを整えるマクロにします。
在庫表自動生成コード
Sub CreateInventoryTable()
Dim ws As Worksheet
Set ws = Worksheets.Add
ws.Name = "在庫表"
' 見出し行を作成
ws.Range("A1:D1").Value = Array("商品名", "数量", "単価", "金額")
With ws.Range("A1:D1")
.Font.Bold = True
.Interior.Color = RGB(200, 200, 250) '薄い青
.HorizontalAlignment = xlCenter
End With
' サンプルデータを入力
Dim items As Variant
items = Array("りんご", "みかん", "バナナ", "ぶどう", "いちご")
Dim i As Long
For i = 0 To UBound(items)
ws.Cells(i + 2, 1).Value = items(i) '商品名
ws.Cells(i + 2, 2).Value = (i + 1) * 5 '数量
ws.Cells(i + 2, 3).Value = (i + 1) * 100 '単価
ws.Cells(i + 2, 4).FormulaR1C1 = "=RC[-2]*RC[-1]" '金額 = 数量×単価
Next i
' 表全体の整形
With ws.Range("A1:D" & UBound(items) + 2)
.Borders.LineStyle = xlContinuous
.EntireColumn.AutoFit
End With
End Sub
VB解説
- 新しいシートを作成 →
Worksheets.Addで「在庫表」という名前のシートを追加。 - 見出し行 →
Array("商品名","数量","単価","金額")を使って一括入力。 - 商品データ → 配列
itemsに果物の名前を入れてループで入力。 - 数量・単価 → 簡単に
(i+1)*5や(i+1)*100でサンプル値を生成。 - 金額列 → 数量×単価を数式で自動計算。
- 整形 → 枠線を付け、列幅を自動調整。
実行結果イメージ
| 商品名 | 数量 | 単価 | 金額 |
|---|---|---|---|
| りんご | 5 | 100 | 500 |
| みかん | 10 | 200 | 2000 |
| バナナ | 15 | 300 | 4500 |
| ぶどう | 20 | 400 | 8000 |
| いちご | 25 | 500 | 12500 |
このコードを走らせると、在庫表が一瞬で完成します。
次のステップとして「在庫が一定数以下なら赤色にする」など条件付き書式を組み込むと、さらに実用的になります。
