VBAでマクロを組もうと思っても、「どう書いたらいいか分からない」「最初の一行すら浮かばない」と手が止まってしまうことはよくあります。経験者でも同じです。
そんなときにおすすめなのが「処理をまず日本語で書き出してみる」という方法です。プログラムの命令は、普段頭の中で考えている日本語と近い構造をしています。
処理を日本語で書き出すとはどういうことか?
たとえば、次のような処理をしたいとします。
「A列の中から”未処理”と書かれているセルを探し、B列に”対応中”と書きたい」
この一文が、そのままマクロの設計図になります。次のように段階的に分解します。
- ① A列を上から順番に見る
- ② 「未処理」と書かれているセルを探す
- ③ その行のB列に「対応中」と書く
この3ステップをそのままVBAに落とし込むと、次のようなコードになります。
Sub WriteStatus()
Dim i As Long
For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row ' ①A列を上から順に見る
If Cells(i, 1).Value = "未処理" Then ' ②「未処理」かチェック
Cells(i, 2).Value = "対応中" ' ③B列に書き込む
End If
Next i
End Sub
日本語で書いた3ステップと、コードの構造がほぼ対応していることがわかります。
コメントを使って設計図を先に書くには?
コードを書き始める前に、コメント(')で処理の流れを先に書いておく方法も効果的です。
Sub UpdateSheet()
Dim i As Long
' データの最終行を取得する
For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
' A列をループしてチェックする
If Cells(i, 1).Value = "エラー" Then
' 「エラー」と書かれていたら赤色に塗る
Cells(i, 1).Interior.Color = RGB(255, 0, 0)
End If
Next i
End Sub
「やることを日本語で書いて → VBAで書く」をセットにすると、途中で迷子になりにくくなります。コメントをそのまま残せばコードの可読性も上がります。
日本語で書き出す手順とは?
次の3ステップで進めると整理しやすいです。
① やりたいことを一文で書く
「A列が〇〇のとき、B列に△△を入力したい」のように、まず目的を1文で言語化します。
② 作業の流れを3〜5ステップに分解する
一文を「どの順番で何をするか」の手順に細かく分けます。
③ 1ステップずつVBAコードに変換する
分解したステップを1つずつコードに書き起こします。一気に書こうとせず、ステップごとに動作確認します。
まとめ
- 手が止まったときは「やりたいことを日本語で一文に書く」ところから始める
- 一文を3〜5ステップに分解するとVBAコードに変換しやすくなる
- コメントで設計図を先に書くと迷わずコードが書ける
- VBAの構文は日本語の思考に近い構造をしているため、言語化できれば書ける
- 分解して1ステップずつ動作確認する習慣がバグを減らす
よくある質問
日本語で書いてもVBAに変換できない場合はどうすればいいですか?
ステップがまだ大きすぎる可能性があります。「A列を見る」ではなく「A列の2行目から最終行まで1行ずつ確認する」のようにさらに細かく分解してみましょう。ステップが具体的になるほどコードに変換しやすくなります。
日本語で書いたコメントはコードに残しておいていいですか?
残しておくことをおすすめします。特に後から自分で見返すときや他の人が読むときに、処理の意図がすぐわかるコメントは大きな助けになります。
この方法はどんなレベルの人に向いていますか?
VBAを始めたばかりの方に特に効果的ですが、複雑な処理を組む経験者にとっても有効な思考整理の方法です。「設計してからコードを書く」という習慣は上級者ほど大切にしています。
書き出した日本語がそのままコードにならない場合はどうすればいいですか?
VBAにない機能(例:Webへのアクセスなど)はコードにできませんが、Excelの操作に関することは大抵VBAで実現できます。コードが思い浮かばない場合は「VBA ○○ 方法」で検索すると対応するコードが見つかることが多いです。
一度に全部書こうとするとうまくいかないのはなぜですか?
処理が複雑になるほど、すべてを同時に考えると論理の矛盾や見落としが起きやすくなります。1ステップずつ書いて動作確認することで、問題の発生箇所を特定しやすくなります。
動画で学びたい方へ
「記事を読んでも、実際に自分で書けるか不安…」という方には、動画で基礎からじっくり学べる講座がおすすめです。
VBAが初めての方を前提に、つまずきやすいポイントを先回りして解説しています。サンプル動画は無料でご覧いただけます。



