Excel VBA

VBA4)実践!VBAの基本構文を学ぼう

前回の「変数って何?Dimを使った宣言をマスターしよう!」で、VBAの土台となる変数の使い方を学びました。今回は、いよいよ実際の処理を記述するための「構文」を見ていきましょう。前回の宣言を行い、これらのパーツを並べれば基本的なVBAは完成します。この記事で紹介する基本的な構文が読めるようになれば、もう初心者卒業は目前です!

VBAを「書く」から「読める」へ

VBAの構文は数多くあり、すべてを暗記するのは大変です。しかし、幸いなことに現代にはChatGPTのような強力なAIアシスタントが存在します。これからの時代のVBA学習は、「やりたいことをAIに伝えてコードを生成してもらい、そのコードを読んで理解・修正する」というスタイルが主流になります。

つまり、全ての構文を完璧に書ける必要はありません。まずは、AIが書いたコードを「読める」ようになることが最も重要です。この記事では、そのために最低限知っておくべき代表的な構文を表にまとめました。

分類 構文 概要
① オブジェクトの指定 Workbooks Excelファイル(ブック)を指定します。
Worksheets ブックの中のシートを指定します。
Range 「A1」のような形でセルを指定します。
Cells 行番号と列番号でセルを指定します。
② 処理の制御 For...Next 決まった回数だけ処理を繰り返します。
If...Then...Else 条件によって処理を分岐させます。
③ 値の操作 .Value / .Font.Color など オブジェクトの「何を」操作するか(値、色など)を指定します。

① オブジェクトの指定

VBAでExcelを操作するとは、突き詰めれば「どのオブジェクト」の「何を」「どうする」かを命令することです。まずは、操作対象となる「オブジェクト」を指定する方法から見ていきましょう。

Workbooks:ブックの指定

Workbooks("ファイル名")の形で、操作したいExcelファイルを指定します。複数のファイル間でデータをやり取りする際に必須です。

'--- ブック「Book1.xlsx」を指定する例 --- Workbooks("Book1.xlsx")

Worksheets:シートの指定

Worksheets("シート名")の形で、ブック内の特定のシートを指定します。

'--- 「Sheet1」という名前のシートを指定する例 --- Worksheets("Sheet1")

Range:セル番地で指定

Range("A1")のように、Excelでおなじみのセル番地を使ってセルや範囲を指定します。直感的で分かりやすいのが特徴です。

'--- A1セルを指定 --- Range("A1") '--- A1セルからC3セルの範囲を指定 --- Range("A1:C3")

Cells:行と列の番号で指定

Cells(行番号, 列番号)の形でセルを指定します。For...Nextループと組み合わせ、「i行目の1列目」のように柔軟にセルを移動させながら処理する際に非常に強力です。

'--- 1行目、1列目のセル(=A1セル)を指定する --- Cells(1, 1) '--- 変数iを使って5行目のセルを動的に指定 --- Dim i As Long i = 5 Cells(i, 1) ' 5行目、1列目(=A5セル)を指定

② 処理の制御

オブジェクトを指定できるようになったら、次は処理の流れをコントロールする構文です。

繰り返し処理:For...Next

決まった回数だけ同じ処理を繰り返したいときに使います。「最終行まで処理する」といったマクロの主役となる構文です。

Dim i As Long For i = 1 To 10 ' 1行目から10行目まで、A列に「○回目」と入力する Cells(i, 1).Value = i & "回目" Next i

条件分岐:If...Then...Else

「もし○○だったらAの処理、そうでなければBの処理をする」というように、条件によって処理を分けたいときに使います。

' もしA1セルの値が80以上なら If Range("A1").Value >= 80 Then MsgBox "合格です" Else ' そうでなければ MsgBox "不合格です" End If

③ 値の操作:プロパティ

オブジェクトを指定したら、その「何を」操作したいのかを.(ドット)で繋いで指定します。これを「プロパティ」と呼びます。

'--- A1セルの「値」を操作する --- Worksheets("Sheet1").Range("A1").Value = "こんにちは" '--- A1セルの「フォントの色」を操作する --- Worksheets("Sheet1").Range("A1").Font.Color = vbRed

AI時代におけるVBAの学び方

今回紹介した構文は、VBAの世界のほんの一部です。しかし、これらの基本的な「オブジェクトの指定」と「処理の構文」の組み合わせで、ほとんどのマクロは成り立っています。

これからの学習ステップ

  1. やりたい処理を日本語で考える(例:「A列の最終行までループして、B列に結果を書きたい」)。
  2. その日本語を、ChatGPTなどの生成AIに伝えてVBAコードを作成してもらう。
  3. 生成されたコードを読む。今回学んだ構文が使われているはずです。
  4. 意図通りに動くか試し、必要であれば少し修正する。

完璧なコードをゼロから書く必要はありません。まずはAIが生成したコードを**「読んで理解できる」**ことを目指しましょう。それだけで、あなたのExcel業務は劇的に効率化されるはずです。

まとめ

今回は、VBAの必須構文について解説しました。

  • VBAの基本は「どのオブジェクト」「何を」「どうする」か。
  • RangeCellsで操作対象を指定する。
  • For...Nextで繰り返し、If...Thenで条件分岐させる。
  • 全ての構文を暗記せず、AIを活用して「読める」ようになるのが近道。

これでVBAの基本的な読み書きはマスターできました。次回は、より実践的なテーマとして、マクロのエラー処理について解説していきます!