プログラムの概要
このプログラムでは、エクセルで以下のことができます。① エクセルに問題と回答選択肢(解説)を入力します。
A列:問題番号
B列:問題文
C列:選択肢(正答)
D~F列:選択肢(誤答)
G列:解説文
②プログラムを実行するとフォームが表示されます。
③「スタート」をクリック
④入力した問題がランダムに実行されます。回答選択肢の位置もランダムです。
⑤答えを選ぶ
⑥正答か誤答かがフィードバックされる。(入力していれば、解説も表示される)
⑦次の問題に進むかどうかを聞かれる
⑧「はい」→④に戻り、くり返し
「いいえ」→問題の終了
⑨日付け、正答率、問題番号と正誤(誤答=0、正答=1)のデータが記録される。
「データ処理」ボタンを押すと問題番号順に正誤の結果が並び替えられる。
(重複データは削除される。正答と誤答のどちらを優先するかも変更はできる)
プログラム作成の手順
本プログラムは、VBA (Visual Basic for Applications) というプログラミング言語で書かれています。エクセルでこのプログラムを実行するためには、以下のように設定を変更する必要があります。Excelメニュー[ファイル]→[オプション] → [リボンのユーザー設定]→ [メインタブ]内の[開発]にチェックをつけ[OK] → Excelのメニューに[開発]タブが追加される。
ファイルの保存は [名前を付けて保存] → ファイルの種類で[Excel マクロ有効ブック(*.xlsm)]を選択して保存する。セキュリティ警告の「コンテンツの有効化」をクリックする(詳しくは以下のリンク参照)。これで準備完了です。
Excelマクロ機能の基本操作(2007/2010/2013版)
Excelマクロ機能の基本操作(2007/2010/2013版)(3ページ目)
[開発タブ] → [Visual Basic] とクリックします。
尚、本プログラムは、以下のHPを主に参考に作成しています。
女子大生のためのExcelVBA講座
Sheetの準備
Sheet 2, Sheet 3 を新規作成します。このシートには何も入力しなくて良いです。
フォームの作成
[Sheet 1]を右クリック → [挿入] → [ユーザーフォーム] を選択する。以下のHPの手順に沿って作成してください。
Lesson4:ユーザフォームの作成
上のリンクでは、ボタンは5つですが、本プログラムは4つです。また、解説用のテキストボックスも加え、以下のようになります。
オレンジでは、各要素のオブジェクト名や大きさを示しています。オブジェクト名を間違えないように、入力してください。
コードウィンドウを開くために、作成した [スタート] ボタンをダブルクリックします。
コードウィンドウで「全体を選択 [Alt] + [A]」し、デリーとします。そして、以下のコードを貼りつけます。
そして、標準モジュールにそれぞれ以下のコードを作成します。
Module 1は、簡単に以下のコードです。
Option Explicit
Sub UserForm_Open()
UserForm1.Show
End Sub
Module 2 は、以下のコードを貼りつけてください。
このプログラムは、はてな人力検索にて、id:Z1000S 氏に書いていただきました。
Sheet2に「スタートボタン」、Sheet3に「データ処理ボタン」をそれぞれ作成します。
そして、スタートボタンにUserForm_Open()、データ処理ボタンにsortAndSerialize()のマクロを登録します。
以上でプログラムは完成です。
問題をSheet1に入力し、スタートボタンを押すと、クイズプログラムを実行できます。資格試験などに活用してみてください。