アクセス数アクセスカウンター

トップページ
更新・会社概要
ご 注 文 画 面
ご注文について
プライバシーポリシー
法律による表記
健康情報など
取扱商品一覧
お問い合わせ
パパナピ!

 


健康情報 ⇒ どこへ向かって・・・ ⇒ VBAトップ ⇒ Nバック脳トレ【脳のトレーニング@Excel】


Nバック脳トレ⇒ 簡単な計算を連続で解いてゆく脳のトレーニングです。解答するのはN個前の計算。 2個前、3個前、4個前・・・ と出来るようになった時には、飛躍的に頭の回転が速くなっている とのことです。ホントにそんなことがあるのでしょうか?


10/6/7 Excel2007は2000と拡張子が違うんですね(ショック

⇒10/6/13 拡張子が違っても使えたので、自分用に手を加えたものをアップです。時間制限はどうしようかと思ったけれど・・・ 実際やってみて分かったのは、時間が経つにつれて急激にワーキングメモリーがクリアされていく感じ・・・ じっくり思い出そうとしたらアウトです(汗  だから敢えて未実装(ウソ 手抜きデス

手書き機能も無い(できない)中途半端さなので、名称は「Nバック脳トレもどき」とでもしておきましょうか・・・。

まぁ、無料なんで、ゲーム感覚で気軽にどうぞ〜(^^

ダウンロード⇒ Nバック脳トレもどき(Excel2000形式:マクロ有り)

※ワークシートをダブルクリックすることにより開始します。最初にレベル(N個前)を指定してください。なお、ファイルをダウンロードせずに直接開いた場合には、終了する 時に保存するかどうか を聞いてきますが、保存できませんので「保存しない」を選択してください。

⇒10/6/13 分かってはいたけれど・・・

Windows Xp では、直接ファイルを開いても実行できます。最初に私の作ったマクロを信頼するボタンを押さなければならないのですが、私のことが信頼できない場合には、一旦マクロを無効にしてソースコードを見てみると確実です。


Windows Vista では、マクロの含まれたファイルを「信頼できる場所」に保存する必要があります。簡単にはマクロを実行させてもらえません。(以下、Vista+Excel2007のヘルプより)


10/6/7

2010/6/6のテレビ番組 『脳テレ〜あたまの取扱説明書(トリセツ)〜』 で紹介されていた「Nバック脳トレ」。


下のコードをエクセルワークシートのコードエディターに貼り付けて、当該ワークシートの「A1」の部分が見えている状態で、セル(どこでもかまいません)をダブルクリックすれば始まります。


最初にレベルを聞いてきます。2と入力すれば、2個前の回答が対象になります。(9個前までOKなハズ・・・ ハズ!!!!?)

なお、最初の計算(2と入力した時には最初の2個)には解答がありませんが、解答を聞いてきます。0(ゼロ)を入力すると正解扱いになります。


終了するには、数字を入力する場所で「キャンセル」するか「数字以外を入力」してください。(エラー状態になると終了するため)


※最初から最後まで書きっぱなしの見直し無しで、何回か実行してみて、「なんだか、うまく動いているようだな・・・」というレベルなので、不具合があるかもです(こんなやり方じゃ普通は有りますよね・・・ テスト段階でエラーが出ずに思ったように動いただけでも奇跡!)。 変数に冗長な部分があったり変数名が意味不明なのは分かっていますが、もう、そのまま掲載です! コメント無しでごめんなさい。

判定時にビープ音を付けてみたり、ユーザーフォームで時間制限を付けてみたりと改良の余地は沢山あります。表示に漢字を使っていないので子どももいけるのでは?

 

'ここから

Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    On Error GoTo End_Handle
    Dim Level As Integer
    Dim intRet(10) As Integer
    Dim intState As Integer
    Dim intAns As Integer
    Dim intLevel As Integer
    Dim numA As Integer
    Dim numB As Integer
    Dim intNowAns As Integer

    Randomize
    intState = 0
   
    Dim intTrue As Integer
    Dim intFalse As Integer
   
    Range("b4").Clear
    Range("c4").Clear
   
    '答え確認用
    'Range("b7").CurrentRegion.Clear
   
   
    Level = InputBox("レベル?")

    Do
        intState = intState + 1
        If intState = 11 Then intState = 1
       
        numA = CInt(Rnd(1) * 10 + 1)
        numB = CInt(Rnd(1) * 10 + 1)
       
       
        Range("b2") = numA & " + " & numB & " ="
       
        intRet(intState) = numA + numB
       
        intAns = InputBox("こたえは?")
       
        Range("b2") = ""
       
     intLevel = intState - Level
        If intLevel <= 0 Then intLevel = 10 + intLevel
        intNowAns = intRet(intLevel)
       
        If intAns = intNowAns Then
            Range("b5") = "せいかい!"
            intTrue = intTrue + 1
            Range("b4") = "○ " & intTrue
        Else
            Range("b5") = "まちがい!"
            intFalse = intFalse + 1
            Range("c4") = "× " & intFalse
        End If
       
        '答え確認用
        'Dim intShowPlace As Integer
        'Range("b7").Offset(intShowPlace, 0) = intRet(intState)
        'intShowPlace = intShowPlace + 1
   
    Loop
End_Handle:
End Sub

'ここまで

(C)山本健康堂 2005-2024