脳トレ問題をExcel「エクセル」で作ってみよう!!

エクセルのマクロを使って、一桁の数字の四則演算の問題作成

わり算は、回答が難しくなるので、「+」「-」「×」のみ使用するようにしています。

「スタート」の処理

岡山市のパソコン・プログラミング教室、エクセルで作る脳トレ問題~スタート~

処理内容

スタートボタンが押下されたら?

  1. タイマーの開始
  2. 1~10の数値をランダムに発生させ、計算する数字をセットしていく、演算子も同様に1~3の数値で、演算子を決める
  3. 終わったら、入力エリアの選択する。

入力がしやすいように、最後に選択エリアを範囲選択しています。
Excelでは、選ばれた選択範囲で繰り返し移動できます。

スタートボタンのプログラムは?

    Range("時間").Value = ""
    t1 = Now

    For i = 0 To 9
        Cells(2 + i, 5).Value = ""
        Cells(2 + i, 6).Value = ""
        Cells(2 + i, 1).Value = Rand(10, 1)
        Cells(2 + i, 3).Value = Rand(10, 1)
    
        Select Case Rand(3, 1)
            Case 1: Cells(2 + i, 2).Value = "+"
            Case 2: Cells(2 + i, 2).Value = "-"
            Case 3: Cells(2 + i, 2).Value = "×"
            Case 4: Cells(2 + i, 2).Value = "÷"
        End Select
        Cells(2 + i, 4).Value = "="
    
    Next i
    
    Range("E2:E11").Select

Range(“時間”)は、タイマーの表示箇所の名前です。
Rand関数は、乱数発生の関数を作っています。いろいろなサイトで紹介されていますので、ここでは、紹介のみで、説明はしません。

実際には、「÷」は出てきませんが、何かしら方法があれば、2桁の計算などで使えるかも知れないのでそのままにしています。

最後のRangeでの指定で入力エリアを選択して入力できるようにしています。

終わりボタンが押されたら?

  1. タイマーを停止して、時間を表示する
  2. 入力された値と実際の計算結果とを比較して、「〇」「×」を表示する。
  3. 点数を計算して表示する。

終わりボタンのプログラムは?

    Dim a As Integer
    Dim b As Integer
    Dim ans As Integer

    t2 = Now

    For i = 0 To 9
        a = Cells(2 + i, 1).Value
        b = Cells(2 + i, 3).Value
    
        Select Case Cells(2 + i, 2)
        
            Case "+": ans = a + b
            Case "-": ans = a - b
            Case "×": ans = a * b    
        End Select
    
        If ans = Cells(2 + i, 5) Then
            Cells(2 + i, 6) = "〇"
        Else
            Cells(2 + i, 6) = "×"
        End If
    Next i
    
    Range("時間").Value = t2 - t1

演算子によっての分岐、計算結果の判定をしています。
「〇」「×」の数は、シート側で、COUNTIF関数を使って出しています。

岡山市のパソコン・プログラミング教室、エクセルで作る脳トレ問題~結果表示~

Rand関数は?どこかのサイトからのコピペで作成した物を使いまわしています。
使っているのは、こんな感じです。

Public Function Rand(iMax As Integer, iMin As Integer) As Integer

    '// 疑似乱数列初期化
    Call Randomize
    
    '// 最大値~最小値の範囲の乱数を取得
    Rand = Int((iMax - iMin + 1) * Rnd + iMin)

End Function

プログラミングの利点の一つに、自作した関数を保存しておくと、使いまわしができることです。
エクセルのVBAであれば、コピペ作成も可能ですし、必要に応じて、少し変更するなど、作れば作るだけ、引き出しが増えていきます。

パソコン・スマホのスキルアップなら、岡山市北区のパソコン教室「キュリオステーション岡山店」へ通いやすい仕組みの料金設定にしています。同じ料金設定の中高生も大人もスキルアップできる初心者向けのプログラミング教室、子ども向けの知的好奇心を育むロボット教室マンツーマン個別レッスンの英会話教室もしています。

お問い合わせ

TEL:086-206-5592

WEB:WEB予約

タイトルとURLをコピーしました