前回に引き続き、VBA(Visual Basic for Applications)についてご紹介します。
前回の記事
公開予定
➀ 基本的な使用方法
② VBAの基本構文 【今回の記事】
③ オブジェクトモデルの理解
④ マクロの記録
⑤ デバッグ技術
⑥ リファレンスの活用
例では、Excelを用いて説明します!
本編
今回は、「② VBAの基本構文」のご紹介です!
構文は、プログラミング言語で使用される文法やルールのことを指します。構文を組み合わせて、プログラムを作成することができます。
VBAの構文に関する特徴をまとめると以下のようになります。
- ステートメント(文)の集まりでプログラムが構成される。
- 変数とデータ型を使用してデータを格納する。
- 制御構造を使用してプログラムのフローを制御する。
- 関数を定義して再利用可能なコードを作成する。
- オブジェクト指向プログラミングの機能をサポートする。
では、基本的な構文を具体的に見ていきましょう!
1. サブルーチン(Sub)
サブルーチンは、プログラム内で特定のタスクや処理を実行するためのブロックです。
プログラム内の特定の箇所に配置され、その中に実行したい処理を記述します。
以下のような構文で定義されます。
Sub サブルーチン名()
' コードの実行内容
End Sub
サブルーチンは、プログラム内の他の場所から呼び出すこともできます。
これにより、同じ処理を複数の場所で使用したり、コードの再利用性を高めたりすることができます。
2. 変数の宣言
変数は、プログラム内でデータを格納するための箱のようなものです。変数の宣言は、データの種類に応じて行われます。
例えば、数値やテキスト、日付などのデータを格納するために、変数を使用します。
変数は、そのデータを後で参照したり、操作したりするために使用されます。
以下のような構文で定義されます。
Dim 変数名 As データ型
変数名は、自分で自由に決めることができる名前です。
データ型は、変数が格納するデータの種類を指定します。
例えば、整数型のデータを格納する変数を宣言する場合は、次のようになります。
Dim num As Integer
変数の宣言は、プログラム内でデータを保持するための重要な要素です。
変数を使用することで、データを一時的に保存したり、計算したり、条件に基づいて処理を行ったりすることができます。
3. 条件分岐
条件分岐は、プログラム内で特定の条件に基づいて処理のフローを制御するための機能です。
条件分岐は、ある条件が真(True)か偽(False)かを判断し、それに応じて異なる処理を実行することができます。
たとえば、特定の条件に基づいてセルの値を変更したり、データをフィルタリングしたりするために、条件分岐を使用することができます。
以下のような構文で定義されます。
If 条件 Then
' 条件が真の場合の処理
ElseIf 条件 Then
' 条件が真の場合の処理
Else
' いずれの条件も真ではない場合の処理
End If
条件分岐は、Ifキーワードで始まり、条件式が評価されます。
もし条件が真の場合は、Then以下の処理が実行されます。
もし条件が偽の場合は、ElseIfやElse以下の処理が実行されることもあります。
条件分岐は、処理のフローを制御するための重要な要素です。
特定の条件に基づいて処理を分岐させることで、プログラムの柔軟性や応用性を高めることができます。
4. ループ
ループは、同じ処理を繰り返し実行するための機能です。
具体的には、ある条件が満たされている間は同じ処理を繰り返し実行し、条件が満たされなくなったら処理を終了する仕組みです。
VBAのループには主に2つの種類があります。
・ Forループ
指定した回数だけ処理を繰り返すループです。
例えば、「10回繰り返す」という指定があれば、処理が10回実行されます。
以下のような構文で定義されます。
Dim i As Integer
For i = 1 To 10
' ここに繰り返し実行したい処理を記述
Next i
変数 i を使用して1から10までの数値を繰り返し処理しています。
Forループは、指定した回数だけ処理を繰り返すため、繰り返し回数を事前に知っている場合に適しています。
・ Whileループ
指定した条件が満たされている間、処理を繰り返すループです。 例えば、「条件Aが成り立つ間は繰り返す」という指定があれば、条件Aが満たされている限り処理が実行されます。
以下のような構文で定義されます。
Dim i As Integer
i = 1
While i <= 10
' ここに繰り返し実行したい処理を記述します
i = i + 1
Wend
変数 i を使用して1から10までの数値を繰り返し処理しています。
Whileループは、指定した条件が満たされている間処理を繰り返すため、繰り返し回数が事前にわからない場合や条件に基づいてループを制御したい場合に適しています。
条件が満たされなくなったらループが終了するため、条件の変化に注意が必要です。
基本的な処理については、上記で説明した構文を使えばできます。
はじめはデータの流れについていくのが難しいかもしれないですが、いろいろ試して、動きを見ながらコードを組んでいくと理解できてくると思います!