2018年7月2日月曜日

試験勉強に最適な「Excel 4択クイズ実行プログラム」

 資格試験の主な勉強方法の1つは、過去問を解くことです。しかし、書籍や紙の問題集では、正答率の計算や苦手な問題の把握に手間がかかります。そこで、問題を自分自身に出し、正誤の結果を記録する Excel VBA のプログラムを作成しました。本エントリでは、プログラムの概要を説明し、VBA コードを提供します。

プログラムの概要

 このプログラムでは、エクセルで以下のことができます。
① エクセルに問題と回答選択肢(解説)を入力します。

  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に入力し、スタートボタンを押すと、クイズプログラムを実行できます。資格試験などに活用してみてください。