Excel VBA | 学習支援付き Excel VBA 演算子まとめファイル を作る

Excel VBA VBA
スポンサーリンク

では次のような「学習支援付き Excel VBA 演算子まとめファイル」を作りましょう。
クリック操作だけで演算結果と説明を学べる構成です。


構成イメージ

シート名内容
Main「算術」「比較」「論理」それぞれのボタン+説明欄
Module1各演算のコード(CalcOperators / CompareOperators / LogicalOperators)+学習支援コード

作成手順

① Excel ブックを新規作成

保存名例:VBA_Operators_Study.xlsm(マクロ有効形式)

② シートを整える

  1. シート名を「Main」に変更
  2. 次のようにボタンとセルを配置 A1:学習支援モード:Excel VBA 演算子まとめ A3:「算術演算子」ボタン A4:「比較演算子」ボタン A5:「論理演算子」ボタン C3:説明表示欄(説明文を出すため)
  3. 開発タブ →「挿入」→「フォームコントロール」→「ボタン」を3つ作成
    • ボタン1 → CalcOperators
    • ボタン2 → CompareOperators
    • ボタン3 → LogicalOperators

モジュールコード全体

下記を 標準モジュール(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

使い方

  1. Excel のマクロを有効にしてブックを開く
  2. 「算術」「比較」「論理」のボタンをクリック
  3. 左側に結果、右上に説明が自動表示されます

拡張アイデア

  • 🔹結果セルを色分け(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

設定手順まとめ

  1. Excelを開く → 新規ブック作成 → マクロ有効形式 (.xlsm) で保存
  2. シート名を「Main」に変更
  3. 「開発」タブ → 挿入 → フォームコントロール → ボタン を3つ作成し、
    • ボタン1 → CalcOperators
    • ボタン2 → CompareOperators
    • ボタン3 → LogicalOperators に割り当てる。
  4. 上のコードを「標準モジュール(Module1)」に貼り付け
  5. ボタンをクリックして実行 🎯

機能まとめ

機能説明
✅ 結果の自動色分けTrue → 緑、False → 赤
✅ 説明表示欄各演算の概要が右側に出る
✅ 順番学習モード「▶ 次の学習へ」ボタンが自動生成
✅ ミニクイズ機能実行ごとに1問の理解チェック付き
✅ 自動リセット新しい演算を選ぶたびに画面をクリア
VBA
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました