VBAエキスパート(Excelスタンダード) 試験範囲その3-ステートメント
公開日:2018年8月18日
このページでは、VBAエキスパート(Excelスタンダード)の 試験範囲のうち、「ステートメント」について概要を説明します。
VBAエキスパート(Excelスタンダード) 試験範囲その1-プロシージャ
目次
1.Select Caseステートメント
Select Caseステートメントは、複数の条件を同時に判定する際に便利なステートメントです。
Ifステートメントでも同じプログラムは記述できますが、同時に判定する条件が多い場合にはSelect Caseステートメントの方がスッキリとしたコードを記述できるため、可読性が高まります。
Select Caseステートメントは、最初に「Select Case 値」で始め、終わりに「End Select」を記述します。
そしてその間に「Case 条件」および条件を満たした場合の動作を記述します。この部分は複数記述できます。
2.Do...Loopステートメント
Do...Loopステートメントは、条件を指定しておき、その条件を満たすまでは繰り返し動作を行うプログラムです。
Do...Loopステートメントの記述方法には、異なる4種類の方法が可能です。
まず、条件を先に記述するか、後ろに記述するかの違いがあります。前者は「Do 条件...Loop」、後者は「Do...Loop 条件」と記述します。
次に条件自体の記述には、「While 条件」と「Until 条件」の2種類が使用可能です。前者は「条件を満たす間は動作を繰り返すプログラム」となり、後者は「条件を満たすまで動作を繰り返すプログラム」になります。
以上から、①「Do While 条件...Loop」②「Do Until 条件...Loop」③「Do...Loop While 条件」④「Do...Loop Until 条件」の4種類を記述することができます。
3.For Each...Nextステートメント
For Each...Nextステートメントは、グループのメンバを1つずつ操作を行うためのプログラムです。
代表的な例としては、あるブック上に「サンプル」というシートがないかどうか、ワークシートを1つずつ調べるような操作です。
For Each...Nextステートメントは、最初に「For Each 変数 In グループ」と記述します。上記の例であれば、「For Each ws In Worksheets」などと記入します。wsはワークシートの変数ですので、事前に「Dim ws As Worksheet」などと宣言しておきます。
次に1つずつのメンバに対して操作させたいプログラムを記述します。上記の例であれば、「If ws.Name = "サンプル" Then...」とワークシート名が「サンプル」であるかどうかを条件とするIfステートメントを記述します。
最後に「Next 変数」と記述し、次のメンバを操作することを表します。上記の例であれば、「Next ws」と記述します。
4.Exitステートメント
Exitステートメントは、途中で処理を中止するためのプログラムです。次の4種類の使い方があります。
Subプロシージャを中止したい場合には、「Exit Sub」とSubプロシージャのプログラム内に記述します。
Functionプロシージャを中止したい場合には、「Exit Function」とFunctionプロシージャのプログラム内に記述します。
For...Nextステートメントや上記のFor Each...Nextステートメントを中止したい場合には、「Exit For」とそれぞれのステートメント内に記述します。
最後にDo...Loopステートメントを中止したい場合には、「Exit Do」とステートメント内に記述します。
関連記事
VBAエキスパートに合格する方法
VBAエキスパートの難易度
VBAエキスパートの独学方法