Excel VBAを使って、毎日「本日の注文者」を自動で書き出す仕組みを作りたいと思っている方へ。今回は、初心者の方でもわかりやすく、実際に使えるコードとともに解説します。パソコンやスマホにあまり詳しくない方でも、安心して取り組める内容にしていますので、ぜひ最後までご覧ください。
Excel VBAとは?
Excel VBA(Visual Basic for Applications)は、Excelの操作を自動化するためのプログラミング言語です。例えば、毎日決まった時間に「本日の注文者」を自動で抽出して書き出す作業も、VBAを使えば簡単に実現できます。
本日の注文者を自動で抽出する流れ
注文者のデータが入力されたシートから、当日の日付に該当する注文者を抽出し、別のシートに書き出す流れを考えます。具体的には、以下の手順で進めます。
データの準備
まず、注文者データが入力されたシートを用意します。例えば、「注文データ」という名前のシートに、以下のようなデータが入力されているとします。
| 注文日 | 注文者名 | 商品名 |
|---|---|---|
| 2025/06/06 | 山田太郎 | 商品A |
| 2025/06/06 | 鈴木花子 | 商品B |
| 2025/06/05 | 佐藤次郎 | 商品C |
VBAコードの作成
次に、VBAエディタを開き、以下のコードを入力します。
Sub 本日の注文者を書き出す()
Dim wsData As Worksheet
Dim wsOutput As Worksheet
Dim lastRow As Long
Dim i As Long
Dim outputRow As Long
Dim today As String
' シートの設定
Set wsData = ThisWorkbook.Sheets("注文データ")
Set wsOutput = ThisWorkbook.Sheets("出力")
' 本日の日付を取得
today = Format(Date, "yyyy/mm/dd")
' 出力シートの初期化
wsOutput.Cells.Clear
' 見出しの設定
wsOutput.Cells(1, 1).Value = "注文者名"
wsOutput.Cells(1, 2).Value = "商品名"
' データの最終行を取得
lastRow = wsData.Cells(wsData.Rows.Count, "A").End(xlUp).Row
' 出力行の初期化
outputRow = 2
' データのループ
For i = 2 To lastRow
If wsData.Cells(i, 1).Value = today Then
wsOutput.Cells(outputRow, 1).Value = wsData.Cells(i, 2).Value
wsOutput.Cells(outputRow, 2).Value = wsData.Cells(i, 3).Value
outputRow = outputRow + 1
End If
Next i
End Sub
コードの実行
コードを入力したら、VBAエディタを閉じて、Excelに戻ります。次に、Alt + F8キーを押して、「本日の注文者を書き出す」を選択し、「実行」をクリックします。これで、「出力」シートに本日注文された方の名前と商品名が自動で書き出されます。
よくある質問
Q1: VBAって難しそうで、どう始めればいいかわかりません。
VBAは最初は難しく感じるかもしれませんが、少しずつ覚えていけば大丈夫です。まずは、上記のコードをそのままコピーして実行してみてください。実際に動かしてみることで、理解が深まりますよ。
Q2: 他の日付の注文者も抽出したいのですが、どうすればいいですか?
日付を指定する部分を変更すれば、他の日付の注文者も抽出できます。例えば、特定の日付を抽出したい場合は、以下のようにコードを変更します。
today = "2025/06/05"
このように、日付を直接指定することで、特定の日付の注文者を抽出できます。
Q3: 注文者の名前だけでなく、住所や電話番号も一緒に書き出したいのですが、どうすればいいですか?
住所や電話番号など、他の情報も一緒に書き出す場合は、データの列番号を変更すれば対応できます。例えば、住所が4列目、電話番号が5列目にある場合、以下のようにコードを変更します。
wsOutput.Cells(outputRow, 3).Value = wsData.Cells(i, 4).Value
wsOutput.Cells(outputRow, 4).Value = wsData.Cells(i, 5).Value
このように、必要な情報を追加することで、より詳細なデータを抽出できます。
まとめ
今回は、Excel VBAを使って「本日の注文者」を自動で書き出す方法をご紹介しました。初心者の方でも、上記の手順を実践することで、簡単に自動化の仕組みを作ることができます。ぜひ、日々の業務に役立ててください。
他にも疑問やお悩み事があれば、お気軽にLINEからお声掛けください。



コメント