見積書・納品書・請求書などのデータが、
Excel・CSV・TSV形式で届くことは珍しくありません。
それを まさか印刷して手入力……
そんな非効率なこと、していませんよね?
もし
- 同じ作業を毎月繰り返している
- チェック作業に無駄な時間がかかっている
- 残業を少しでも減らしたい
そう感じているなら、ExcelVBAは最強の時短ツールです。
この記事では、
「これだけ覚えればまずはOK」 というVBAの基本、
- Cellsとは何か
- For Nextとは何か
を、実務で使える例を交えて解説します。
VBAを使うメリット(SEO的に◎)
ExcelVBAを使えるようになると、
こんな変化が起こります。
- 単純作業を自動化できる
- 人為的なミスが減る
- 作業時間が大幅に短縮できる
結果として、
ワークライフバランスが整い、
家で好きなことをしたり、副業に時間を使う余裕が生まれます。
VBAコード画面の開き方
まずは、VBAを書くための画面を開きましょう。
方法は2つあります。
方法①(一番簡単)
Alt + F11
方法②
Excel上部メニューの
「開発」タブ → コードの表示
※「開発」タブが表示されていない場合は、
Excelのオプション設定から有効化できます(下図参照)。





これでVBAコードを記載する画面が開きます。
Cellsとは何か?
Cellsとは、Excel上のセルの位置を指定する命令です。
Cells(行番号, 列番号)
サンプルコード
Sub Sample()
Cells(3, 1) = "時短術"
End Sub
このコードを実行すると、
A3セルに「時短術」 と表示されます。
- 行番号:3
- 列番号:1(A列)
CellsはVBAでほぼ必ず使う超重要要素なので、
ここはしっかり覚えておきましょう。
For Nextをマスターしよう
For Nextは、処理を繰り返したいときに使う命令です。
実務では
- 行を下までチェックしたい
- データ件数が毎回違う
こんな場面で必須になります。
実務例:請求書の検収チェックを自動化
例えば、
請求書管理用のExcelがあり、
- 単価が入力されていれば「検収済み」
- 単価が空白なら「未検収」
と自動で判定したいとします。
I列(9列目)をチェックする場合のサンプルです。
Sub 検収chkSample()
Dim i As Long
For i = 3 To 150
If Cells(i, 9) = "" Then
Cells(i, 10) = "未検収"
Else
Cells(i, 10) = "検収済み"
End If
Next
End Sub
コード解説(初心者向け)
If Cells(i, 9) = "" Then
→ I列のi行目が空白かどうかをチェックCells(i, 10) = "未検収"
→ 空白だった場合、J列に「未検収」と表示Else
→ 空白ではなかった場合(=単価が入力されている)Cells(i, 10) = "検収済み"
→ J列に「検収済み」と表示End If
→ If文の処理はここまで- Next
→ 次のi行目にいく。
「I列をチェックして、結果をJ列に表示している」
と理解できればOKです。
VBAを使わなくてもできる。でも…
正直、この作業はVBAを使わなくてもできます。
- フィルタをかける
- 空白に「未検収」と入力
- それ以外に「検収済み」と入力
でも、
この作業がシート毎に何枚もあったら?
私は、人海戦術は即Noです。
VBAなら
- シートを自動で巡回
- ボタン一つで全処理完了
が可能になります。
まとめ
今回は、
ExcelVBAで時短するために最初に覚えるべき
- Cells
- For Next
について解説しました。
少しずつ、
実務でそのまま使えるVBAを
噛み砕いて紹介していきます。
ぜひ、
普段使っている管理シートで試してみてください。
※ 実行前には必ずバックアップを取ってください。
VBAは Ctrl + Z では元に戻せません。

コメント