見出し画像

学習お助けtips

問題をランダムに出題してくれるExcelのマクロプログラムを組んでみました。比較的簡単なプログラムなので、わざわざ公表するようなものではないのですが、参考になればと思い紹介します。
以下は一例ですので、好きにアレンジして下さい。英語に限らず、様々な分野の学習にも使えると思います。
(Excelのマクロを少しいじったことのある方なら、簡単だと思います)

参考例は、「NHKラジオ英会話2022年4月号」に掲載されている英文フレーズと日本語訳から引用しました。

① 問題文リストを作成します。
新規のワークシートに名前を付けます。(今回の例ではワークシート名は「ランダム化b」)
参考例として、1つのセルに英文と日本語を2行にして書き込みます。英文の文字の色を白にすると英文は見えなくなりますが、(「表示」タブの表示グループにある「数式バー」のチェックボックスをONにして)対象のセルをクリックすると上の「数式バー」に英文が現れて答えを確認することができます。

ここがポイントですが、リストの一番左側の「A」列に全て「=RAND()」と入力します。
この関数は、0 以上で 1 より小さい実数の乱数を返すもので、ワークシートで何かの作業が行われる度に、各セルに新しく乱数が割り当てられます。

② 問題を表示するワークシートを用意します。
(この例ではワークシート名を「ランダム問題b」にしています)
「A1」のセル部分に、「マクロ実行用ボタン」となる図形を適当に作って配置しておきます。

③マクロプログラムの作成
以下の様なプログラムを作成します。
(この例のマクロ名は「Macro4」です)

「Range("A1").CurrentRegion.Sort」としておくと、問題リストに問題を追加しても、その範囲を自動認識してくれます。
(注)問題リスト内には空欄のセルを入れないで下さい。範囲を正しく認識できなくなります。

「Range("B1:C5").Copy Sheets("ランダム問題b").Range("A2")」で、問題リスト(ワークシート名「ランダム化b」)のセル「B1からC5」の範囲をコピーして、出題シート(ワークシート名「ランダム問題b」)のセル「A2」以下に貼り付けます。この部分のセル範囲を書き換えれば、アレンジが可能です。

「A」列の各セルに入力してある「=RAND()」によって毎回ランダムに数値が割り当てられ、その値の大きさで各問題がソートされて並び変わり、さらに指定の範囲が出題シートにコピーされる仕組みです。
プログラムを「表示」タブの「マクロの表示」から登録します。
(以下は一例)

③「マクロ実行用ボタン」にプログラムを登録する
用意したボタン用の図形をマウスで右クリックして、「マクロの登録」からんでマクロ名を選んで登録します。これで、ボタンを押す(クリック)すると実行されます。

④実行例

英文の解答を見たければ、対象のセルをクリック

「実行ボタン」を押すたびに、問題がランダムにピックアップされます。
※応用として、次のように穴埋め問題や、コピーされる範囲を変えたりしてアレンジできます。(^^♪

P.S. 素人がお遊びで作成してみたものですので、もっと洗練された方法がありましたら是非ご指導ください。m(_ _)m

この記事が気に入ったらサポートをしてみませんか?