![見出し画像](https://assets.st-note.com/production/uploads/images/78667463/rectangle_large_type_2_3bd2c929856faad5bf2e8b166eda3b19.png?width=1200)
学習お助けtips
問題をランダムに出題してくれるExcelのマクロプログラムを組んでみました。比較的簡単なプログラムなので、わざわざ公表するようなものではないのですが、参考になればと思い紹介します。
以下は一例ですので、好きにアレンジして下さい。英語に限らず、様々な分野の学習にも使えると思います。
(Excelのマクロを少しいじったことのある方なら、簡単だと思います)
参考例は、「NHKラジオ英会話2022年4月号」に掲載されている英文フレーズと日本語訳から引用しました。
① 問題文リストを作成します。
新規のワークシートに名前を付けます。(今回の例ではワークシート名は「ランダム化b」)
参考例として、1つのセルに英文と日本語を2行にして書き込みます。英文の文字の色を白にすると英文は見えなくなりますが、(「表示」タブの表示グループにある「数式バー」のチェックボックスをONにして)対象のセルをクリックすると上の「数式バー」に英文が現れて答えを確認することができます。
![](https://assets.st-note.com/img/1652674721444-DlQXOFKV1Q.png?width=1200)
ここがポイントですが、リストの一番左側の「A」列に全て「=RAND()」と入力します。
この関数は、0 以上で 1 より小さい実数の乱数を返すもので、ワークシートで何かの作業が行われる度に、各セルに新しく乱数が割り当てられます。
![](https://assets.st-note.com/img/1652674552563-m4brQjd5Kb.png?width=1200)
② 問題を表示するワークシートを用意します。
(この例ではワークシート名を「ランダム問題b」にしています)
「A1」のセル部分に、「マクロ実行用ボタン」となる図形を適当に作って配置しておきます。
![](https://assets.st-note.com/img/1652676826306-qF1zFq7T6G.png?width=1200)
③マクロプログラムの作成
以下の様なプログラムを作成します。
(この例のマクロ名は「Macro4」です)
![](https://assets.st-note.com/img/1652680697358-QK9h0q7q0m.png)
「Range("A1").CurrentRegion.Sort」としておくと、問題リストに問題を追加しても、その範囲を自動認識してくれます。
(注)問題リスト内には空欄のセルを入れないで下さい。範囲を正しく認識できなくなります。
「Range("B1:C5").Copy Sheets("ランダム問題b").Range("A2")」で、問題リスト(ワークシート名「ランダム化b」)のセル「B1からC5」の範囲をコピーして、出題シート(ワークシート名「ランダム問題b」)のセル「A2」以下に貼り付けます。この部分のセル範囲を書き換えれば、アレンジが可能です。
「A」列の各セルに入力してある「=RAND()」によって毎回ランダムに数値が割り当てられ、その値の大きさで各問題がソートされて並び変わり、さらに指定の範囲が出題シートにコピーされる仕組みです。
プログラムを「表示」タブの「マクロの表示」から登録します。
(以下は一例)
![](https://assets.st-note.com/img/1652678480996-4scvYdk6rb.png?width=1200)
③「マクロ実行用ボタン」にプログラムを登録する
用意したボタン用の図形をマウスで右クリックして、「マクロの登録」からんでマクロ名を選んで登録します。これで、ボタンを押す(クリック)すると実行されます。
![](https://assets.st-note.com/img/1652678984595-zWJXuF46Tn.png)
④実行例
![](https://assets.st-note.com/img/1652679362291-duA9qTSuLe.png?width=1200)
英文の解答を見たければ、対象のセルをクリック
![](https://assets.st-note.com/img/1652679477625-WMUvTWY4kT.png?width=1200)
「実行ボタン」を押すたびに、問題がランダムにピックアップされます。
※応用として、次のように穴埋め問題や、コピーされる範囲を変えたりしてアレンジできます。(^^♪
![](https://assets.st-note.com/img/1652679667801-8keT8lnB4h.png?width=1200)
P.S. 素人がお遊びで作成してみたものですので、もっと洗練された方法がありましたら是非ご指導ください。m(_ _)m