こんにちは!ぐーです。
いつもブログをご覧いただき、ありがとうございます!
突然ですが、この記事を読んでいるあなたは、こんな風に悩んでいませんか?
- 「毎日同じExcelのコピペ作業ばかりで、時間が溶けていく…」
- 「ITやプログラミングに興味あるけど、何から学べばいいか分からない」
- 「VBAって難しそう。私なんかが覚えても、どうせ使いこなせない…」
分かります。私も最初はそうでした。大量のデータ入力や集計作業に追われ、「この作業、自動化できたらなぁ」とため息をつく毎日。
この記事は、そんな「VBAに興味はあるけど、難しそうで一歩踏み出せない」「Excel作業を効率化したいけど、何から学べばいいか分からない」という人向けの記事です。
VBAは、それほど難しくありません。特に事務作業で使う機能は限られています。
今回は、私が「これさえ覚えれば、事務作業の約70%は自動化できる」と思う、初心者が絶対にマスターすべき基本構文(命令の書き方)3つだけを厳選して、コピペOKなコード付きで解説します。
📖 なぜこの3つが重要なのか?
VBAにはたくさんの命令がありますが、正直、全部覚える必要はありません。
Excel内の作業を自動化するだけなら、以下の3つを組み合わせるだけで基礎は十分です。
- Cells(セルズ):Excelの「どこに」操作するか指定する
- If(イフ):コンピュータに「もし~なら、~する」と判断させる
- For(フォー):面倒な「繰り返し」を命令する
これらを「車のパーツ」に例えるなら、Cellsが「場所(住所)」、Ifが「ハンドル(進む方向を決める)」、Forが「アクセル(自動で進む)」といったところでしょうか。
では、一つずつ見ていきましょう。
1. Cells (セルズ):Excelの「住所」を指定する
まずは、VBAに「どこのセルを操作してほしいか」を伝える方法です。
Cells(行番号, 列番号)
これだけです。例えば、A1セルなら「1行目の1列目」なので Cells(1, 1) と書きます。C5セルなら Cells(5, 3) ですね。(CはAから数えて3番目なので)
【コピペして試してみよう】
Excelを開き、「Alt」キーと「F11」キーを同時に押してVBAの編集画面(VBE)を開きます。
左側のプロジェクトエクスプローラーでシート名をダブルクリックし、右側の白い画面に以下をコピペしてください。
Sub Test_Cells()
' Cells(1, 1) は「A1セル」のこと
' .Value は「そのセルの値」という意味
Cells(1, 1).Value = "こんにちは"
' Cells(5, 3) は「C5セル」のこと
Cells(5, 3).Value = 100
End Sub
コピペしたら、VBEの画面で「F5」キーを押して実行!
Excelシートに戻ってみてください。A1セルに「こんにちは」、C5セルに「100」と入力されていれば成功です!
2. If (イフ):「もし~なら」の条件分岐
次に、ExcelのIF関数のように、条件によって処理を変える方法です。
If 条件 Then 処理 End If
「もし(If)〇〇という条件を満たしたら(Then)、〇〇という処理をしなさい(処理)。終わったら(End If)」という意味です。
【コピペして試してみよう】
さっきの Cells と組み合わせてみましょう。
「もしA1セルの値が『こんにちは』だったら、B1セルに『OK』と表示する」
Sub Test_If()
' もし A1セル(Cells(1, 1)) の値が "こんにちは" だったら
If Cells(1, 1).Value = "こんにちは" Then
' B1セル(Cells(1, 2)) に "OK" と入力する
Cells(1, 2).Value = "OK"
End If
End Sub
A1セルに「こんにちは」と入力してから、F5キーで実行してみてください。B1セルに「OK」と出ましたか?
3. For (フォー):「繰り返し」命令
これがVBAの真骨頂です。面倒な繰り返し作業は、すべてFor文に任せましょう。
For 変数 = 開始 To 終了 処理 Next 変数
「変数(iという箱を使うことが多い)に、開始(1)から終了(10)まで順番に数字を入れながら、中の処理を繰り返してね(Next)」という意味です。
【コピペして試してみよう】
「A1セルからA10セルまで、順番に1から10までの数字を入力する」
10回コピペする作業も、Forを使えば一瞬です。
Sub Test_For()
' 変数 i を用意 (i は「箱」だと思ってください)
Dim i As Long
' i に 1 から 10 まで順番に入れながら繰り返す
For i = 1 To 10
' Cells(i, 1) は、i=1の時はA1、i=2の時はA2... と変化する
Cells(i, 1).Value = i
Next i
End Sub
F5キーで実行!一瞬でA1~A10に数字が入ったはずです。
🚀 3つを組み合わせのが自動化のコツ
お待たせしました。この3つを組み合わせると、仕事が劇的に変わります。
【応用例:コピペでOK】
「A列の1行目から10行目までを順番に見て(For)、もしそのセルの値が5以上だったら(If)、隣のB列のセル(Cells)に『合格』と入力する」
Sub Test_All()
Dim i As Long
' 1行目から10行目まで繰り返す (For)
For i = 1 To 10
' もし A列の i行目 の値が 5 以上だったら (If + Cells)
If Cells(i, 1).Value >= 5 Then
' B列の i行目 に "合格" と入力する (Cells)
Cells(i, 2).Value = "合格"
End If
Next i
End Sub
どうですか?さっき入力したA1~A10の数字(1~10)を使ってこれを実行すると、B5~B10セルに「合格」と入るはずです。
これを使いこなせるようになると、手作業で何時間もかかっていた作業であっても、自動で一瞬で終わります。
🏁 まとめ:まずは「動いた!」を体験しよう
最初から完璧に理解しようとしなくてOKです。
まずはこの記事のコードをコピペして、「F5キーを押したら、動いた!」という感動を体験してみてください。
この3つの構文(Cells, If, For)を覚えるだけで、
- 何千〜何万もあるデータから、特定の条件(If)のものだけ探して
- 一覧表(For)に自動で転記する(Cells)
といった、あなたが今「面倒だなぁ」と感じている作業の多くが自動化できます。
実務ではこれだけでは処理しきれない複雑な業務もありますよね。
それでもベースとなるのはこの3つですので、しっかり身につけていきましょう!
VBAを独学で学び、業務自動化に5年以上携わってきた私が、「本当に実務で役立った!」と感じた2冊を厳選して紹介します。 もう本選びで失敗したくない方は、ぜひ参考にしてみてください。


コメント