Excelで支出管理表や記録表を作成していると、日付・金額・使用先などの情報を毎回手入力する作業が負担になることがあります。VBAを使えば、決まった形式のデータを取得して、表の指定した場所へ自動的に入力することが可能です。
この記事では、Excel VBAを使って日付・金額・使用先などの項目を一覧表へ自動表示する基本的な考え方と、実際に利用できるサンプルコードを紹介します。
VBAを使うとExcelの表入力を自動化できる
Excel VBAでは、セルへの書き込みやデータの整理をプログラムで実行できます。例えば、入力用シートに登録した情報を管理表へ転記したり、複数の項目をまとめて一覧化したりできます。
手作業の場合、同じような表へ何十件も入力すると入力ミスや時間のロスが発生します。しかしVBAで処理を自動化すると、ボタン1つで決められた形式の表を作成できます。
例えば、家計簿のような表で「日付」「金額」「使用先」の3項目を管理している場合、入力データを読み取り、空いている行へ順番に追加する処理を作成できます。
VBAで表へデータを表示する基本的な流れ
Excel VBAで表へ情報を表示する場合、基本的には以下の流れで処理を作成します。
- 入力元となるセルやデータを指定する
- 表示先となる表の空いている行を探す
- 日付や金額などの値をセルへ書き込む
- 必要に応じて書式を整える
例えば、A列に日付、B列に金額、C列に使用先を表示する表の場合、それぞれのセルへ値を代入することで自動入力できます。
日付・金額・使用先を表へ追加するVBAサンプルコード
以下は、入力した情報を一覧表の最終行へ追加する基本的なサンプルコードです。
Sub データ追加()
Dim ws As Worksheet
Dim lastRow As Long
Set ws = Worksheets("Sheet1")
lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row + 1
ws.Cells(lastRow, "A").Value = Date
ws.Cells(lastRow, "B").Value = 5000
ws.Cells(lastRow, "C").Value = "食料品"
MsgBox "データを追加しました"
End Sub
このコードを実行すると、Sheet1のA列の最終行の次へ日付、金額、使用先が自動的に入力されます。
例えば、実際の利用では金額部分を入力フォームから取得したり、使用先を選択式にしたりすることで、より使いやすい管理表へ発展させることができます。
複数データを一括表示する場合の考え方
複数件のデータをまとめて表示したい場合は、For文を使ってセルを順番に処理します。
例えば、別シートに保存された10件の支出データを一覧表へ移動する場合、1行ずつ読み込みながら表へ書き込む処理を作成します。
Sub 一括転記()
Dim i As Long
Dim lastRow As Long
lastRow = Worksheets("入力").Cells(Rows.Count, "A").End(xlUp).Row
For i = 2 To lastRow
Worksheets("一覧").Cells(i, "A").Value = Worksheets("入力").Cells(i, "A").Value
Worksheets("一覧").Cells(i, "B").Value = Worksheets("入力").Cells(i, "B").Value
Worksheets("一覧").Cells(i, "C").Value = Worksheets("入力").Cells(i, "C").Value
Next i
End Sub
このような処理を利用すると、入力データを別の管理表へ自動反映できます。
VBAで作成すると便利な管理表の例
VBAによる自動入力は、家計簿だけでなくさまざまな業務で活用できます。
例えば、経費管理表では「日付」「金額」「利用目的」「担当者」を自動登録できます。また、売上管理では「注文日」「商品名」「価格」「顧客情報」などを一覧化できます。
毎回同じ形式で入力する作業がある場合は、VBAで入力ボタンを作成すると作業時間を大幅に短縮できます。
VBAを使う際に注意したいポイント
VBAで自動化する場合は、セルの位置やシート名が変更されると正常に動作しなくなることがあります。
そのため、実際の運用ではシート名を固定したり、入力範囲を変数で管理したりすると、後から修正しやすいコードになります。
また、大切なデータを扱う場合は、VBAを実行する前にファイルのバックアップを作成しておくと安心です。
まとめ
Excel VBAを利用すると、日付・金額・使用先などの項目を表へ自動表示することができます。
基本的にはセルへ値を書き込む処理と、必要な行を探す処理を組み合わせることで、さまざまな管理表を自動化できます。
まずは紹介したサンプルコードを参考に、簡単なデータ追加処理から作成し、必要に応じて入力フォームや複数データ処理へ発展させると効率的なExcel管理が可能になります。


コメント