VBAエキスパート Excel VBA ベーシック ⑥ ステートメント

処理の流れを制御する構文を学びます。If...Then...Else は条件によって処理を分け、条件を増やすときは ElseIf を使い End If で閉じます。For...Next は決まった回数だけ繰り返す構文で、Step を付けると増減の幅を変えられます。With ステートメントは同じオブジェクトに対する記述をまとめるもので、With の中では先頭のピリオドからプロパティやメソッドを書き、End With で閉じます。つまずきやすいのは、ElseIf を Else If と2語に分けて書く誤りと、With ブロック内で先頭のピリオドを書き忘れてオブジェクトの指定が外れる誤りです。

この分野の問題42問を、選択肢・正解・解説つきで掲載しています。まず自分で解答を考えてから「正解と解説を見る」を開いて答え合わせをしてください。

クイズモードで挑戦 →

204VBAにおける「ステートメント」の説明として最も適切なものはどれか。

  1. AExcelのセルを直接操作する命令
  2. B変数を宣言する命令だけを指す
  3. C処理の流れや構造を制御する命令
  4. Dセルをコピーする命令
正解と解説を見る

正解:C処理の流れや構造を制御する命令

ステートメントは、For…NextやIf、Withのように処理の流れや構造を制御する命令です。

この問題の解説ページを開く →

205For...Nextステートメントで、変数の初期値と終了値を指定するために使う記号はどれか。

  1. A「=」と「To」
  2. B「=」と「Step」
  3. C「To」と「Step」
  4. D「To」と「End」
正解と解説を見る

正解:A「=」と「To」

初期値と終了値の指定には、イコール「=」と「To」という記号を使います。

この問題の解説ページを開く →

206Nextステートメントの後ろに記述する「変数名」について、正しい内容はどれか。

  1. A必ず記述しなければならない
  2. B記述してはいけない
  3. C書かなくてもエラーにならないが記述が推奨される
  4. D記述するとエラーになる
正解と解説を見る

正解:C書かなくてもエラーにならないが記述が推奨される

変数名は書いても書かなくてもよいですが、読みやすさを高めるため記述が推奨されます。

この問題の解説ページを開く →

207シートの1行目のセルから下方向に向かって表の最終行を探すコードはどれか。

  1. ARange("B1").End(xlUp).Row
  2. BCells(Rows.Count, 2).End(xlDown).Row
  3. CCells(Rows.Count, 2).End(xlUp).Row
  4. DRange("B1").End(xlDown).Row
正解と解説を見る

正解:DRange("B1").End(xlDown).Row

1行目から下方向に探す場合は「Range("B1").End(xlDown).Row」と書きます。

この問題の解説ページを開く →

208シートの最終セルから上方向に向かって最終行を探すコードはどれか。

  1. ARange("B1").End(xlDown).Row
  2. BCells(Rows.Count, 2).End(xlUp).Row
  3. CCells(Rows.Count, 2).End(xlDown).Row
  4. DRange(Rows.Count).End(xlUp).Row
正解と解説を見る

正解:BCells(Rows.Count, 2).End(xlUp).Row

下から上へ探す場合は「Cells(Rows.Count, 2).End(xlUp).Row」と書きます。

この問題の解説ページを開く →

209For...Nextステートメントにおいて、複数行おきに繰り返し処理を行うために指定するキーワードはどれか。

  1. ALoop
  2. BNext
  3. CStep
  4. DSkip
正解と解説を見る

正解:CStep

複数行おきに変えるには、Stepを指定します。

この問題の解説ページを開く →

210変数「年度」の値を1増やすためのコードとして、正しいものはどれか。

  1. A年度 = 1
  2. B年度 = + 1
  3. C年度 = 年度 + 1
  4. D年度 + 1 = 年度
正解と解説を見る

正解:C年度 = 年度 + 1

「変数 = 変数 + 1」というコードで変数が1増えます。

この問題の解説ページを開く →

211逆方向(行番号が減る方向)の繰り返し処理において、3行ずつ減らす場合の指定方法はどれか。

  1. AStep 3
  2. BStep -3
  3. CTo -3
  4. DDown 3
正解と解説を見る

正解:BStep -3

マイナス3行おきに処理する場合は引数に「Step -3」を指定します。

この問題の解説ページを開く →

212逆方向の繰り返し処理における、初期値と終了値の大小関係について正しいものはどれか。

  1. A初期値と終了値は等しくする
  2. B初期値は終了値より小さくする
  3. C初期値は終了値より大きくする
  4. D初期値と終了値は設定しない
正解と解説を見る

正解:C初期値は終了値より大きくする

逆方向の処理では初期値と終了値の大小関係が逆になり、初期値が大きくなります。

この問題の解説ページを開く →

213条件分岐を表すステートメントはどれか。

  1. AFor
  2. BStep
  3. CWith
  4. DIf
正解と解説を見る

正解:DIf

Ifステートメントは条件分岐を表します。

この問題の解説ページを開く →

214Ifステートメントにおいて、条件を満たす場合の処理を指定するキーワードはどれか。

  1. AThen
  2. BElse
  3. CIf
  4. DNext
正解と解説を見る

正解:AThen

「If 条件 Then」は「条件を満たす場合」という意味です。

この問題の解説ページを開く →

215Ifステートメントにおいて、条件を満たさない場合の処理を指定するキーワードはどれか。

  1. AElse
  2. BEnd
  3. CThen
  4. DStep
正解と解説を見る

正解:AElse

Elseは「条件を満たさない場合」という意味です。

この問題の解説ページを開く →

216「等しくない」を表す比較演算子はどれか。

  1. A<>
  2. B><
  3. C=>
  4. D!=
正解と解説を見る

正解:A<>

「等しくない」を表す記号は小なりと大なりを組み合わせた「<>」です。

この問題の解説ページを開く →

217「年齢が40未満」を表す条件式として正しいものはどれか。

  1. A年齢 < 40
  2. B年齢 <= 40
  3. C年齢 > 40
  4. D年齢 <> 40
正解と解説を見る

正解:A年齢 < 40

40未満は「年齢 < 40」と書きます。

この問題の解説ページを開く →

218「年齢が75以上」を表す条件式として正しいものはどれか。

  1. A年齢 >= 75
  2. B年齢 > 75
  3. C年齢 <= 75
  4. D年齢 <> 75
正解と解説を見る

正解:A年齢 >= 75

75以上は「年齢 >= 75」と書きます。

この問題の解説ページを開く →

219複数の条件を組み合わせる際に、「かつ」を表す演算子はどれか。

  1. AOr
  2. BNot
  3. CElse
  4. DAnd
正解と解説を見る

正解:DAnd

「〜かつ〜」のように複数の条件を組み合わせるときは「And」を使います。

この問題の解説ページを開く →

220複数の条件を組み合わせる際に、「または」を表す演算子はどれか。

  1. AAnd
  2. BIf
  3. COr
  4. DThen
正解と解説を見る

正解:COr

「〜または〜」の場合は「Or」を使います。

この問題の解説ページを開く →

221「年齢が40以上かつ年齢が75以下」を正しく表すコードはどれか。

  1. A年齢 >= 40 Or 年齢 <= 75
  2. B年齢 > 40 And 年齢 < 75
  3. C年齢 >= 40 And 年齢 <= 75
  4. D年齢 >= 40 And <= 75
正解と解説を見る

正解:C年齢 >= 40 And 年齢 <= 75

Andの左右の条件式はそれぞれ単体で成立する書き方にする必要があります。

この問題の解説ページを開く →

222オブジェクトの記述を省略するために使うステートメントはどれか。

  1. AWith
  2. BFor
  3. CIf
  4. DStep
正解と解説を見る

正解:AWith

Withステートメントは、オブジェクトの記述を省略するために使います。

この問題の解説ページを開く →

223Withステートメント内で、省略したオブジェクトに属するメソッドやプロパティの先頭に付ける記号はどれか。

  1. Aカンマ
  2. Bピリオド
  3. Cコロン
  4. Dイコール
正解と解説を見る

正解:Bピリオド

メソッドやプロパティの先頭のピリオド「.」を書き忘れないように注意します。

この問題の解説ページを開く →

224Withステートメントを終了させるキーワードはどれか。

  1. AEnd If
  2. BNext With
  3. CEnd With
  4. DStop With
正解と解説を見る

正解:CEnd With

Withステートメントは「End With」で終わります。

この問題の解説ページを開く →

225Ifステートメントを終了させるキーワードはどれか。

  1. AEnd If
  2. BNext If
  3. CEnd
  4. DStop If
正解と解説を見る

正解:AEnd If

Ifステートメントは「End If」で終わります。

この問題の解説ページを開く →

226「年齢が40以下」を表す条件式として正しいものはどれか。

  1. A年齢 < 40
  2. B年齢 <= 40
  3. C年齢 > 40
  4. D年齢 <> 40
正解と解説を見る

正解:B年齢 <= 40

40以下は「年齢 <= 40」と書きます。

この問題の解説ページを開く →

227For...Nextステートメントで繰り返し処理を行う際、処理の終端を示すステートメントはどれか。

  1. ANext
  2. BEnd For
  3. CLoop
  4. DEnd
正解と解説を見る

正解:ANext

ForとNextの間に繰り返し実行する処理を書きます。

この問題の解説ページを開く →

228条件「年齢が35に等しい」を表すコードとして正しいものはどれか。

  1. A年齢 == 35
  2. B年齢 = 35
  3. C年齢 >= 35
  4. D年齢 <= 35
正解と解説を見る

正解:B年齢 = 35

等しい場合は「年齢 = 35」と書きます。

この問題の解説ページを開く →

229次のコード「For 行番号 = 2 To 5」が実行されたとき、ループ内の処理は何回実行されるか。

  1. A3回
  2. B4回
  3. C5回
  4. D6回
正解と解説を見る

正解:B4回

行番号が2、3、4、5の合計4回実行されます。

この問題の解説ページを開く →

230コード「For 行番号 = 3 To 9 Step 3」が実行されたとき、行番号の変数はどのように変化するか。

  1. A3, 4, 5, 6, 7, 8, 9
  2. B3, 9
  3. C3, 6
  4. D3, 6, 9
正解と解説を見る

正解:D3, 6, 9

初期値3から終了値9まで、3ずつ増加するため「3, 6, 9」となります。

この問題の解説ページを開く →

231コード「For 行番号 = 9 To 3 Step -3」が実行されたとき、最後に処理される行番号の値はいくつか。

  1. A9
  2. B3
  3. C6
  4. D0
正解と解説を見る

正解:B3

「9, 6, 3」の順で処理されるため、最後の値は3です。

この問題の解説ページを開く →

232行方向と列方向の繰り返し処理を両方行う場合、どのように記述するのが適切か。

  1. A1つのForステートメントの中にAndで条件をつなぐ
  2. BForステートメントの中に別のForステートメントを書く(ネストする)
  3. CStepに複数指定する
  4. DIfステートメントを組み合わせる
正解と解説を見る

正解:BForステートメントの中に別のForステートメントを書く(ネストする)

複数のFor...Nextステートメントを組み合わせて(ネストして)書きます。

この問題の解説ページを開く →

233コード「Cells(行番号, 列番号) = Cells(行番号, 2) * Cells(2, 列番号)」において、「Cells(2, 列番号)」は何行目のデータを参照しているか。

  1. A変数「列番号」の行
  2. B2行目
  3. C1行目
  4. D最後の行
正解と解説を見る

正解:B2行目

引数の1つ目が「2」であるため、2行目を参照しています。

この問題の解説ページを開く →

234Ifステートメントの中にさらにIfステートメントを記述する「入れ子(ネスト)」構造は、どの演算子を使った条件式と同じ結果になるか。

  1. AAnd
  2. BNot
  3. COr
  4. DLike
正解と解説を見る

正解:AAnd

Ifステートメントの入れ子は、And条件と同じ結果になります。

この問題の解説ページを開く →

235「If 年齢 > 35 Then」の中に「If 区分 <> "一般" Then」が記述されている入れ子コードと同じ意味になるコードはどれか。

  1. AIf 年齢 > 35 Or 区分 <> "一般" Then
  2. BIf 年齢 > 35 And 区分 = "一般" Then
  3. CIf 年齢 > 35 And 区分 <> "一般" Then
  4. DIf 年齢 > 35 Else 区分 <> "一般" Then
正解と解説を見る

正解:CIf 年齢 > 35 And 区分 <> "一般" Then

2つの条件をAndで結んだ「If 年齢 > 35 And 区分 <> "一般" Then」と同じ意味になります。

この問題の解説ページを開く →

236コード「With Sheets(2)」内で「.Visible = False」と記述した場合、どのオブジェクトが非表示になるか。

  1. A現在アクティブなシート
  2. BSheets(2)
  3. CSheets(1)
  4. Dすべてのシート
正解と解説を見る

正解:BSheets(2)

Withステートメントで指定した「Sheets(2)」のプロパティとして処理されます。

この問題の解説ページを開く →

237コード「Cells(i, j)」において、変数の意味を判別するテクニックとして正しいものはどれか。

  1. Aiが列番号、jが行番号を表す
  2. Biとjはどちらも行番号を表す
  3. Ciが行番号、jが列番号を表す
  4. Diとjはどちらも列番号を表す
正解と解説を見る

正解:Ciが行番号、jが列番号を表す

Cellsの引数は1つ目が行番号、2つ目が列番号を表します。

この問題の解説ページを開く →

238If・For・Withなどのステートメントに関する説明として、正しくないものはどれか。

  1. A条件を満たすか判定する命令である
  2. B繰り返し処理を行う命令である
  3. Cオブジェクトの記述を省略する命令である
  4. Dセルやブックそのものを表すオブジェクトである
正解と解説を見る

正解:Dセルやブックそのものを表すオブジェクトである

If・For・Withはステートメント(命令)であり、セルやブックそのもの(オブジェクト)とは異なります。

この問題の解説ページを開く →

239Nextステートメントの後ろの変数名について、「正しくないもの」はどれか。

  1. A書かなくてもエラーにならない
  2. Bコードの読みやすさを高める効果がある
  3. CForとNextの対応関係を判別しやすくなる
  4. D変数名を省略すると実行時にエラーが発生する
正解と解説を見る

正解:D変数名を省略すると実行時にエラーが発生する

変数名は書いても書かなくてもよく、省略してもエラーにはなりません。

この問題の解説ページを開く →

240複数条件の記述「年齢 >= 40 And <= 75」が誤りである理由として正しいものはどれか。

  1. AAndの代わりにOrを使わなければならないから
  2. B不等号の向きが逆だから
  3. C数値をダブルクォーテーションで囲んでいないから
  4. DAndの右側の条件式が単体で成立していないから
正解と解説を見る

正解:DAndの右側の条件式が単体で成立していないから

AndやOrの左右に書く条件式は、それぞれ単体で成立する書き方にする必要があります。

この問題の解説ページを開く →

241「年齢が35に等しくない」を表すコードとして「誤っているもの」はどれか。

  1. A年齢 <> 35
  2. B年齢 > 35 Or 年齢 < 35
  3. CNot (年齢 = 35)
  4. D年齢 != 35
正解と解説を見る

正解:D年齢 != 35

VBAにおける「等しくない」は「<>」であり、「!=」は使用しません。

この問題の解説ページを開く →

242Withステートメント内でメソッドやプロパティを記述する際、「ピリオドを付け忘れた場合」の説明として正しいものはどれか。

  1. A文法エラーとなりプログラムが停止する
  2. B意図しないオブジェクトを操作してしまう危険性がある
  3. C自動的にWithで指定したオブジェクトが補完される
  4. D何も処理されずに次の行へ進む
正解と解説を見る

正解:B意図しないオブジェクトを操作してしまう危険性がある

ピリオドがないと、意図しないオブジェクトを操作してしまう危険性があります。

この問題の解説ページを開く →

243Ifステートメントのパターン1(Elseがない形)に関する説明として「正しくないもの」はどれか。

  1. A条件を満たす場合のみ処理が行われる
  2. B条件を満たさない場合は何もしない
  3. CElse句を省略した書き方である
  4. D条件を満たさない場合は自動的にエラーになる
正解と解説を見る

正解:D条件を満たさない場合は自動的にエラーになる

条件を満たさない場合は「何もしない」だけであり、エラーにはなりません。

この問題の解説ページを開く →

244For...NextステートメントにおけるStepの説明として「正しくないもの」はどれか。

  1. A複数行おきに処理する際に指定する
  2. B省略した場合は1ずつ増加する
  3. Cマイナスを指定して逆方向に処理することもできる
  4. DStepは必ずForの次の行に記述する
正解と解説を見る

正解:DStepは必ずForの次の行に記述する

StepはForの行末に「Step 間隔」として引数を追加します。

この問題の解説ページを開く →

245コードの解読に関する説明で、推奨事項として「正しくないもの」はどれか。

  1. Aステートメントの対応関係に着目する
  2. B変数の意味を把握するためにCellsの引数に着目する
  3. C日本語以外の変数名が使われた場合は必ず変数名を日本語に書き換えてから実行する
  4. DWithステートメントではピリオドの付け忘れがないかチェックする
正解と解説を見る

正解:C日本語以外の変数名が使われた場合は必ず変数名を日本語に書き換えてから実行する

変数の意味をすばやく解読するテクニックが必要ですが、実行前に書き換える指示はありません。

この問題の解説ページを開く →
VBAエキスパート Excel VBA ベーシックの全分野一覧へ戻る