フラッシュ暗算                             戻る

 世の中には、ものすごい暗算の名手がいる。何桁かの数が、パッ、パッと現れては消え、
それらを即座に足す「あれ」である。以前TVでやっているのを見て思わず感動してしまった。

 このページは、世に知られている「フラッシュ暗算」を体験するためのページである。

 Microsoft の Excel を利用して、フラッシュ暗算のゲームを作ってみよう。

 画面のイメージは下図のように設定するといいだろう。セルB2の列幅、行高を大きめに
とって、フォントも見やすいように大きくとるといいと思う。自分流に設定すればよい。

 視力がいい人は上記の設定をしなくても十分楽しめる。



 ワークシートの説明

 上記画面ではスタートボタンを設定しているが、もちろん次のようにして始めてもよい。

  [ツール]−[マクロ]−[暗算]−[実行] とクリックする。

 そうすると、「速度の数値を入力」とか「計算回数を入力」というメッセージボックスが出る
ので、自分流に入力して初期設定を済ませる。

 あとは、OKボタンを押して、フラッシュ暗算がスタートする。

 セルB2に出てくる数字を暗算で足して答えを入力し、合っていれば『正解』、間違ってい
れば『誤答』および正答が表示される。

 フラッシュ暗算を終わりたい場合は、メッセージボックスで「終わり」を選択すればよい。
これ以外だとエラーになる場合がある。

 フラッシュ暗算のプログラム(VBA)は下記の通りである。

 Microsoft の Excel で、Visual Basic Editor を起動させて、

  [挿入]−[標準モジュール] とクリックし、下記をコピーして貼り付ける。
                      (一部手直しが必要になる場合があるかもしれない。)

Sub 暗算()
Dim 反復1, 反復2, 反復3
Dim SP1, SP2
Dim NUM
Dim X1, X2, X3
Range("B1", "B2") = ""
X1 = 0
X2 = 0
X3 = 0
SP1 = InputBox("速さは? 超速=1 高速=2 中速=3 低速=4 終わり=5", "速度の数値を入力")
If SP1 = 5 Then Exit Sub
Range("B5") = SP1
NUM = InputBox("何個計算しますか...?", "計算回数を入力して下さい...!!")
SP2 = 1000 * SP1
MsgBox ("OKボタンでスタートします...。")
Range("B1") = "次の数字から足してください...!!"
For 反復1 = 1 To NUM
Range("B7") = 反復1
Randomize
X1 = Int(Rnd() * 10 + 1)
Range("B2") = ""
Range("B2") = X1
X2 = X2 + X1
For 反復2 = 0 To SP2 - 1
反復2 = 反復2 + 1
Range("B9") = 反復2
Next 反復2
For 反復2 = 0 To SP2 - 1
反復2 = 反復2 + 1
Range("B2") = ""
Next 反復2
Next 反復1
Range("B1") = "答えは...?"
X3 = InputBox("答えは...?", "数字を入力して下さい...!!")
Range("B2") = X3
If Abs(X2 - X3) < 0.1 Then
MsgBox ("正解です...!!")
終わり
Else
MsgBox "残念!あなたは" & Str(X3) & "と答えましたが、正解は" & Str(X2) & "...!!"
終わり
End If
End Sub
Sub 終わり()
Range("B1").Select
Range("B1") = "次の数字から足してください...!!"
Range("B2") = ""
Range("B5") = ""
Range("B7") = ""
Range("B9") = ""
暗算
End Sub



 上記のVBAで、上から20行目の「X1 = Int(Rnd() * 10 + 1)」から、足される数は、1〜10
である。もっと大きい数で実行したい場合は、「* 10」を「* 100」とか「* 1000」などと書き換え
ればよい。

 読者の方も気分転換に、フラッシュ暗算に挑戦してみませんか?