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」とステートメント内に記述します。