Excelで数学プリントを自動作問

インターネット上で数学の練習プリントが数多く出ているが、そのほとんどが固定されたpdfファイルだ。中に、出来杉君のような、表示するたび違った値を作る優れものもあるけれど。エクセルファイルのものも散見するが、再作問のためにマクロを使用し、(営業用に?)そのマクロが簡単には見ることができないようにできていて、自作のための参考にはならない。
 数学の基礎は計算力だ。「考える力」とか言う人もいるが、別項でも書いたように、数学の力とは、数的表現の処理能力だ。その力を付けるためには、基礎的な計算の反復訓練が是非とも必要だ。中学、高校生で数学を苦手とする生徒の多くは、基礎計算の反復トレーニング不足。これを補うことで数学の理解が飛躍的に向上することがある。キャッチボールの練習不足では、バントシフトの練習など出来るわけがないのだ。
エクセルを使えば、基礎トレーニングのドリルを毎回違った値で無限に作成できる(場合がある)。このようなファイルがを余り見かけないので、その方法を書いて、サンプルを上げてみようと思う。

使用する主なエクセル関数。
・乱数関数 =rand()
・切り捨て関数 =int()
    =int(rand()*10+1) で1~10までの整数を乱数として発生する→randbetween(1,10)でも同様
    =int(rand()*2)*2-1 で+1と-1をランダムに発生する
・順位付け =rank(A, B) AのB範囲での順位を示す。
      =small(A,B) Aの範囲から小さい順にB番目の値を拾い出す。 =large(A,B)は大きい方から
・表参照 =vlookup(A ,B,C) B範囲の表のA行目のC列を読み出す。Bには名前を付けておくと便利。
     =hlookup(A,B,C) B範囲の表のA列目のC行を読み出す

 単順に乱数で問題を作ると、重複が起きる。また不適切な値を避けるために複雑な if 関数を埋め込むことになる場合もある。これを避けるにはマクロなどを用い予め一覧表を作っておいて、乱数と表参照を用いて数値を選び出し、必要なら順位づけを用いて易しい順に並べる。サンプルであげたワークシートは大半この方法で作られている。
 例えば50題から10題選ぶには、50個乱数(rand)を作りそのうち10個について50個中の順位(rank)を計算する。こうすると1から50までの整数から重複無く10個を選べる。(これは結構有名な方法ですよね。)表からその番にある数値を読み出し(vlookup)問題を作る。
 マクロを使用するのはワークシート作成時の一回だけ。書くのに手間がかかる場合もあるが、数千通りの組み合わせでも瞬時に表にできる。これを適当に削って数値の一覧を作る。 
 また、オプション→数式→計算方法 でブックの計算を「手動」にしておき、[f9] キーを押したときだけ再計算するようにして、ちょっと触っただけで問題が変わってしまうことを防いでいる。
 テーマからは逸れるが、エクセルに付随するマクロ機能のうちプログラミングをコントロールしているヴィジュアルベーシック(VBA)は本格的なプログラム言語。結果を簡単にワークシートに反映できる。エクセルに予め含まれているから、オプションでマクロ有効化の設定さえすればすぐ使える。わざわざ言語を入手する必要が無い。子供たちのプログラミング学習にお手軽だと思うのが。

エクセル利用のメリット
・乱数を利用して、繰り返し異なるプリントを作成できる
・計算が速い
エクセルワークシートの組み込み関数は計算が大変速い。数千個程関数を埋め込んでもほとんどストレスにならない。なるべくマクロを使わずワークシート内で全て処理するのが、エクセル使いこなしのコツだ。それと近年のCPU自身の高速化。1980年代のスパコンを凌ぐ性能があるのだから。25年程前のロータス123では、ちょっとたくさん関数を使用すると、再計算が遅く使い物にならなかった。
・数学を苦手とする生徒の基礎力付けるために最適
考え方もさることながら、まず計算力を付けることが最重要。自然数の四則計算、分数の処理、負の数の処理、文字式の処理。生徒のつまずきに合わせて繰り返しトレーニングをさせるためのドリル作りが容易。一度作ってしまえば、次からは1秒かからずに違った数値の問題を作成できる。

エクセル利用の難しいところ
・体裁を整える機能がワープロほど無い。特に文字式のランダムな表示に手間がかかる。

 以下、サンプルとしてダウンロード可能なワークシートを多少あげてみます。適当に改造してご自由にお使い下さい。安全のため *.xlsx 形式のエクセルファイルにしてあります。すべてマクロ無し、ワークシートの再計算機能だけで新しいプリントを作ります。営業ではありませんので、隠しシートもありません。中身の仕組みはすべて公開してあります。(思いつきで継ぎ足しを重ね、温泉旅館のように込み入ってしまったものもありますが。)自由に改造してお使い下さい。エクセルの計算シートですから、著作権もなにもありません。忙しい先生方の業務軽減に少しでも役立てば幸いです。
書式の変更、印刷範囲の指定と印刷など、基本的なExcelの使い方は他で学習して下さい。ご意見ご要望あれば、qf4jt4793アットgmail.com までご連絡下さい。ご希望のものをアップできるかも知れません。

以下、[目次]を参照してサンプルをご覧下さい。印刷設定は使用するプリンターによって微妙に異なるので、印刷範囲・セルの大きさ・文字の大きさ等微調整が必要になる場合もあると思います。