Excel VBA 演算子 練習問題集(解答付き)
ここでは、「Excel VBAの演算子」をしっかり理解できるように、
レベル別(初級~中級)で「練習問題+解答例+解説」をまとめました。
初級編:基本的な計算を覚えよう
問題1:四則演算の結果を出してみよう
次のコードを実行したとき、セルA1~A4にはそれぞれどんな数値が入るでしょう?
Sub 練習1()
Dim x As Integer, y As Integer
x = 8
y = 3
Range("A1").Value = x + y
Range("A2").Value = x - y
Range("A3").Value = x * y
Range("A4").Value = x / y
End Sub
VB解答:
| セル | 結果 | 説明 |
|---|---|---|
| A1 | 11 | 足し算(8 + 3) |
| A2 | 5 | 引き算(8 – 3) |
| A3 | 24 | 掛け算(8 * 3) |
| A4 | 2.666666… | 割り算(8 / 3 は小数) |
💡 ポイント: / は小数で計算されます。
問題2:整数除算と余りを求めよう
Sub 練習2()
Dim x As Integer
x = 17
Range("A1").Value = x \ 5
Range("A2").Value = x Mod 5
End Sub
VB解答:
| セル | 結果 | 説明 |
|---|---|---|
| A1 | 3 | 商(17 ÷ 5 の整数部分) |
| A2 | 2 | 余り(17 ÷ 5 のあまり) |
💡 ポイント:\ → 整数除算、Mod → 余り。17 ÷ 5 = 3 余り 2 だからこの結果。
問題3:べき乗を使ってみよう
Sub 練習3()
Range("A1").Value = 2 ^ 3
Range("A2").Value = 5 ^ 2
End Sub
解答:
| セル | 結果 | 説明 |
|---|---|---|
| A1 | 8 | 2×2×2 |
| A2 | 25 | 5×5 |
中級編:比較と論理を組み合わせる
問題4:比較演算の結果
Sub 練習4()
Dim a As Integer, b As Integer
a = 10
b = 8
Range("A1").Value = a > b
Range("A2").Value = a = b
Range("A3").Value = a <> b
End Sub
VB解答:
| セル | 結果 | 説明 |
|---|---|---|
| A1 | True | 10 > 8 は真 |
| A2 | False | 10 = 8 は偽 |
| A3 | True | 10 ≠ 8 は真 |
💡 ポイント:True/False は VBA 上では論理値。セルに書くと「TRUE」「FALSE」と表示されます。
問題5:And / Or の動き
Sub 練習5()
Dim x As Integer
x = 7
Range("A1").Value = (x > 5) And (x < 10)
Range("A2").Value = (x < 5) Or (x = 7)
Range("A3").Value = Not (x = 7)
End Sub
VB解答:
| セル | 結果 | 説明 |
|---|---|---|
| A1 | True | 両方 True(6~9の間) |
| A2 | True | 片方 True(x=7) |
| A3 | False | 「x=7」がTrueなので Not で反転 |
💡 ポイント:
And→ 両方がTrueならTrueOr→ どちらかがTrueならTrueNot→ True/Falseを反転
問題6:条件を組み合わせて判定
Sub 練習6()
Dim age As Integer, score As Integer
age = 16
score = 82
If age >= 15 And score >= 80 Then
Range("A1").Value = "合格"
Else
Range("A1").Value = "不合格"
End If
End Sub
VB解答:
- 結果:セルA1に「合格」と表示される
💡 理由:両方の条件(年齢15以上、点数80以上)がTrue。
どちらかがFalseなら「不合格」。
問題7:少し応用(Modで偶数/奇数)
Sub 練習7()
Dim i As Integer
i = 13
If i Mod 2 = 0 Then
Range("A1").Value = "偶数"
Else
Range("A1").Value = "奇数"
End If
End Sub
VB解答:
13 Mod 2 = 1→ 余りが1 → 奇数- 結果:「奇数」と表示される。
💡 応用:If i Mod 2 = 0 なら偶数、If i Mod 2 <> 0 なら奇数。
上級チャレンジ:条件を複雑に組み合わせる
問題8:複数の条件で成績判定
Sub 練習8()
Dim score As Integer
score = 73
If score >= 80 Then
Range("A1").Value = "優"
ElseIf score >= 60 Then
Range("A1").Value = "良"
ElseIf score >= 40 Then
Range("A1").Value = "可"
Else
Range("A1").Value = "不可"
End If
End Sub
VB解答:
- 結果:「良」
💡 理由:score=73→ 80未満、60以上の条件に当てはまる。
問題9:複数条件の入れ子(And+Or)
Sub 練習9()
Dim temp As Double, rain As Boolean
temp = 31
rain = True
If (temp >= 30 And Not rain) Or (temp >= 25 And rain) Then
Range("A1").Value = "蒸し暑い日"
Else
Range("A1").Value = "普通の日"
End If
End Sub
VB解答:
- 結果:「蒸し暑い日」
💡 理由:- temp=31 → 30以上
- rain=True →
Not rainは False - しかし
(temp >= 25 And rain)が True なので全体は True。
問題10:演算の順序を理解する
Sub 練習10()
Range("A1").Value = 5 + 3 * 2
Range("A2").Value = (5 + 3) * 2
End Sub
VB解答:
| セル | 結果 | 説明 |
|---|---|---|
| A1 | 11 | 掛け算が先:5 + (3*2) |
| A2 | 16 | ()が先:(5+3)*2 |
💡 ポイント:
掛け算・割り算が優先されます。複雑な式は () で囲みましょう。
まとめ
| 分類 | よく使う演算子 | 覚え方のコツ |
|---|---|---|
| 算術 | + - * / \ Mod ^ | 数の計算に使う |
| 比較 | < <= > >= = <> | True/Falseを返す |
| 論理 | And Or Not | 条件をつなぐ |

