では次のような「学習支援付き Excel VBA 演算子まとめファイル」を作りましょう。
クリック操作だけで演算結果と説明を学べる構成です。
構成イメージ
| シート名 | 内容 |
|---|---|
| Main | 「算術」「比較」「論理」それぞれのボタン+説明欄 |
| Module1 | 各演算のコード(CalcOperators / CompareOperators / LogicalOperators)+学習支援コード |
作成手順
① Excel ブックを新規作成
保存名例:VBA_Operators_Study.xlsm(マクロ有効形式)
② シートを整える
- シート名を「Main」に変更
- 次のようにボタンとセルを配置
A1:学習支援モード:Excel VBA 演算子まとめ A3:「算術演算子」ボタン A4:「比較演算子」ボタン A5:「論理演算子」ボタン C3:説明表示欄(説明文を出すため) - 開発タブ →「挿入」→「フォームコントロール」→「ボタン」を3つ作成
- ボタン1 →
CalcOperators - ボタン2 →
CompareOperators - ボタン3 →
LogicalOperators
- ボタン1 →
モジュールコード全体
下記を 標準モジュール(Module1) に貼り付けてください👇
'===========================================
' 学習支援モード付き VBA演算子まとめ
'===========================================
Sub CalcOperators()
Call ClearArea
Call ShowInfo("算術演算子", _
"足し算・引き算・掛け算・割り算・余り・べき乗など、数値を計算するための基本的な演算子です。")
Dim a As Integer, b As Integer
a = 8
b = 5
With Sheets("Main")
.Range("A8").Value = "a = " & a
.Range("A9").Value = "b = " & b
.Range("A11").Value = "a + b = " & (a + b)
.Range("A12").Value = "a - b = " & (a - b)
.Range("A13").Value = "a * b = " & (a * b)
.Range("A14").Value = "a / b = " & (a / b)
.Range("A15").Value = "a \ b = " & (a \ b)
.Range("A16").Value = "a Mod b = " & (a Mod b)
.Range("A17").Value = "a ^ 2 = " & (a ^ 2)
End With
End Sub
Sub CompareOperators()
Call ClearArea
Call ShowInfo("比較演算子", _
"2つの値を比較し、True(真)またはFalse(偽)を返します。If文などの条件判断で使用します。")
Dim a As Integer, b As Integer
a = 8
b = 5
With Sheets("Main")
.Range("A8").Value = "a = " & a
.Range("A9").Value = "b = " & b
.Range("A11").Value = "a < b → " & (a < b)
.Range("A12").Value = "a <= b → " & (a <= b)
.Range("A13").Value = "a > b → " & (a > b)
.Range("A14").Value = "a >= b → " & (a >= b)
.Range("A15").Value = "a = b → " & (a = b)
.Range("A16").Value = "a <> b → " & (a <> b)
End With
End Sub
Sub LogicalOperators()
Call ClearArea
Call ShowInfo("論理演算子", _
"条件を組み合わせて論理的な判定を行います。And, Or, Not があります。")
Dim a As Integer, b As Integer, c As Integer
a = 8
b = 5
c = 3
With Sheets("Main")
.Range("A8").Value = "a = " & a & " , b = " & b & " , c = " & c
.Range("A11").Value = "a > b And b > c → " & (a > b And b > c)
.Range("A12").Value = "a > b Or b < c → " & (a > b Or b < c)
.Range("A13").Value = "Not (a > b) → " & (Not (a > b))
End With
End Sub
'-------------------------------------------
' サポート用共通処理(説明表示・リセット)
'-------------------------------------------
Sub ShowInfo(title As String, desc As String)
With Sheets("Main")
.Range("C3").Value = "📘 " & title & ":" & desc
.Range("C3").Interior.Color = RGB(230, 250, 240)
.Range("C3").Columns.AutoFit
End With
End Sub
Sub ClearArea()
With Sheets("Main")
.Range("A8:A20").ClearContents
.Range("C3").ClearContents
End With
End Sub
VB使い方
- Excel のマクロを有効にしてブックを開く
- 「算術」「比較」「論理」のボタンをクリック
- 左側に結果、右上に説明が自動表示されます
拡張アイデア
- 🔹結果セルを色分け(True=緑, False=赤)
- 🔹説明欄に図解(数直線・真偽表)
- 🔹「次の学習へ」ボタンで順に演算を学ぶ
- 🔹ボタンを押すたびにメッセージボックスでミニクイズを出す
Excel VBA 学習支援モード付き「演算子まとめ」完全版
'===============================================
' Excel VBA 演算子まとめ(拡張学習支援モード)
'-----------------------------------------------
' ・算術/比較/論理の演算を実演
' ・ボタン押下で説明表示+セルに結果出力
' ・True/Falseを色で可視化
' ・順番学習モード&ミニクイズ付き
'===============================================
Option Explicit
'============================
' 算術演算子
'============================
Sub CalcOperators()
Call ClearArea
Call ShowInfo("算術演算子", _
"足し算・引き算・掛け算・割り算・余り・べき乗など、数値を計算するための基本演算子です。")
Dim a As Integer, b As Integer
a = 8
b = 5
With Sheets("Main")
.Range("A8").Value = "a = " & a
.Range("A9").Value = "b = " & b
.Range("A11").Value = "a + b = " & (a + b)
.Range("A12").Value = "a - b = " & (a - b)
.Range("A13").Value = "a * b = " & (a * b)
.Range("A14").Value = "a / b = " & (a / b)
.Range("A15").Value = "a \ b = " & (a \ b)
.Range("A16").Value = "a Mod b = " & (a Mod b)
.Range("A17").Value = "a ^ 2 = " & (a ^ 2)
End With
Call ColorizeResults("A11:A17")
Call ShowNextButton "比較演算子", "CompareOperators"
Call MiniQuiz_Arithmetic
End Sub
'============================
' 比較演算子
'============================
Sub CompareOperators()
Call ClearArea
Call ShowInfo("比較演算子", _
"2つの値を比較して、真(True)か偽(False)かを判定します。条件分岐でよく使います。")
Dim a As Integer, b As Integer
a = 8
b = 5
With Sheets("Main")
.Range("A8").Value = "a = " & a
.Range("A9").Value = "b = " & b
.Range("A11").Value = "a < b → " & (a < b)
.Range("A12").Value = "a <= b → " & (a <= b)
.Range("A13").Value = "a > b → " & (a > b)
.Range("A14").Value = "a >= b → " & (a >= b)
.Range("A15").Value = "a = b → " & (a = b)
.Range("A16").Value = "a <> b → " & (a <> b)
End With
Call ColorizeResults("A11:A16")
Call ShowNextButton "論理演算子", "LogicalOperators"
Call MiniQuiz_Compare
End Sub
'============================
' 論理演算子
'============================
Sub LogicalOperators()
Call ClearArea
Call ShowInfo("論理演算子", _
"条件を組み合わせて判定を行う演算子です。And, Or, Not が代表的です。")
Dim a As Integer, b As Integer, c As Integer
a = 8
b = 5
c = 3
With Sheets("Main")
.Range("A8").Value = "a = " & a & ", b = " & b & ", c = " & c
.Range("A11").Value = "a > b And b > c → " & (a > b And b > c)
.Range("A12").Value = "a > b Or b < c → " & (a > b Or b < c)
.Range("A13").Value = "Not (a > b) → " & (Not (a > b))
End With
Call ColorizeResults("A11:A13")
Call ShowNextButton "学習完了!おつかれさま🎉", ""
Call MiniQuiz_Logical
End Sub
'============================
' 補助:結果の色分け(True=緑, False=赤)
'============================
Sub ColorizeResults(rngAddress As String)
Dim c As Range
For Each c In Sheets("Main").Range(rngAddress)
If InStr(c.Value, "True") > 0 Then
c.Interior.Color = RGB(210, 255, 210)
ElseIf InStr(c.Value, "False") > 0 Then
c.Interior.Color = RGB(255, 200, 200)
Else
c.Interior.Color = RGB(255, 255, 255)
End If
Next c
End Sub
'============================
' 補助:説明表示
'============================
Sub ShowInfo(title As String, desc As String)
With Sheets("Main")
.Range("C3").Value = "📘 " & title & ":" & desc
.Range("C3").Interior.Color = RGB(230, 250, 240)
.Range("C3").Columns.AutoFit
End With
End Sub
'============================
' 補助:画面リセット
'============================
Sub ClearArea()
With Sheets("Main")
.Range("A8:A20").ClearContents
.Range("A8:A20").Interior.ColorIndex = xlNone
.Range("C3").ClearContents
.Shapes.SelectAll
On Error Resume Next
Selection.Delete
On Error GoTo 0
End With
End Sub
'============================
' 「次の学習へ」ボタンを表示
'============================
Sub ShowNextButton(nextTitle As String, nextMacro As String)
Dim btn As Shape
Dim ws As Worksheet
Set ws = Sheets("Main")
Set btn = ws.Shapes.AddShape(msoShapeRoundedRectangle, 300, 180, 160, 40)
With btn
.Name = "NextButton"
.TextFrame.Characters.Text = "▶ 次の学習へ:" & nextTitle
.Fill.ForeColor.RGB = RGB(200, 240, 255)
.OnAction = nextMacro
End With
End Sub
'============================
' ミニクイズ:算術演算子
'============================
Sub MiniQuiz_Arithmetic()
Dim ans As String
ans = InputBox("【ミニクイズ】" & vbCrLf & "次の結果はいくつ?" & vbCrLf & "10 Mod 4 = ?", "算術演算子クイズ")
If ans = "2" Then
MsgBox "正解!10 ÷ 4 の余りは 2 です🎯", vbInformation
Else
MsgBox "残念!答えは 2 です。Mod は余りを返します。", vbExclamation
End If
End Sub
'============================
' ミニクイズ:比較演算子
'============================
Sub MiniQuiz_Compare()
Dim ans As String
ans = InputBox("【ミニクイズ】" & vbCrLf & "8 <> 5 の結果は?(True か False で答えてね)", "比較演算子クイズ")
If LCase(ans) = "true" Then
MsgBox "正解!異なるので True です💡", vbInformation
Else
MsgBox "惜しい!8 と 5 は異なるので True になります。", vbExclamation
End If
End Sub
'============================
' ミニクイズ:論理演算子
'============================
Sub MiniQuiz_Logical()
Dim ans As String
ans = InputBox("【ミニクイズ】" & vbCrLf & "次の式の結果は?" & vbCrLf & " (3 > 1 And 2 > 5)", "論理演算子クイズ")
If LCase(ans) = "false" Then
MsgBox "正解!一方がFalseなので全体もFalseです。", vbInformation
Else
MsgBox "惜しい!Andは両方TrueでなければFalseになります。", vbExclamation
End If
End Sub
VB設定手順まとめ
- Excelを開く → 新規ブック作成 → マクロ有効形式 (.xlsm) で保存
- シート名を「Main」に変更
- 「開発」タブ → 挿入 → フォームコントロール → ボタン を3つ作成し、
- ボタン1 →
CalcOperators - ボタン2 →
CompareOperators - ボタン3 →
LogicalOperatorsに割り当てる。
- ボタン1 →
- 上のコードを「標準モジュール(Module1)」に貼り付け
- ボタンをクリックして実行 🎯
機能まとめ
| 機能 | 説明 |
|---|---|
| ✅ 結果の自動色分け | True → 緑、False → 赤 |
| ✅ 説明表示欄 | 各演算の概要が右側に出る |
| ✅ 順番学習モード | 「▶ 次の学習へ」ボタンが自動生成 |
| ✅ ミニクイズ機能 | 実行ごとに1問の理解チェック付き |
| ✅ 自動リセット | 新しい演算を選ぶたびに画面をクリア |

