#author("2020-07-02T15:02:51+09:00","default:editor","editor")
#author("2020-07-17T17:43:28+09:00","default:editor","editor")
* 教員向け/Microsoft Formsの答案整理法 [#r86717b0]

** Microsoft Forms を使う上で困ること [#x0c8db67]

Microsoft Forms を使えば簡単にクイズやレポート課題のフォームを作成し、
学生からの答案を回収することができます。
Microsoft Forms によるフォームの作成法については以下をご覧ください。

- [[教員向け/Microsoft Formsによるクイズ作成]]

Microsoft Forms を使って課題の答案を回収する場合には、
誰が回答したのかを区別できるように、
Microsoft Forms の設定で「自分の所属組織内のユーザのみが回答可能」および
「名前を記録」を選択しておきます。
このように設定しておけば、
Microsoft Forms の回答結果に、
回答者の ID (abc12345@nuc.kwansei.ac.jp) と名前 (カタカナ表記) が記録されます。
''回答者の ID (abc12345@nuc.kwansei.ac.jp)'' と''名前 (カタカナ表記)'' が記録されます。

  Microsoft Forms に記録されるのは Microsoft 365 の ID (@ の後が
  nuc.kwansei.ac.jp)になります。関西学院システム利用者 ID は abc12345 という形
  式で、メールアドレスはabc12345@kwansei.ac.jp という形式 (@ の後は
  kwansei.ac.jp のみ) であることに注意してください。
>Microsoft Forms に記録されるのは Microsoft 365 の ID (@ の後が
nuc.kwansei.ac.jp)になります。関西学院システム利用者 ID は abc12345 という形
式で、メールアドレスはabc12345@kwansei.ac.jp という形式 (@ の後は
kwansei.ac.jp のみ) であることに注意してください。

ただし残念なことに、
記録されるのは ID と名前のみであり、
答案の採点や集計に必要となる学籍番号は含まれていません。
答案の採点や集計に必要となる''学籍番号は含まれていません''。

通常、成績管理には学籍番号をキーとして使用していると思いますので、
Microsoft Forms の回答と回答者の学籍番号を対応させる必要があります。

** Microsoft Forms の回答と学籍番号を対応させる方法 [#lacb0621]

以下では、Microsoft Forms のそれぞれの回答を、
Microsoft Forms の回答者の学籍番号と対応付ける方法を説明します。
いろいろな方法が考えられますが、
ここでは最も分かりやすい (何を行っているかを理解しやすい) と思われる方法 
(経済学部の豊原法彦先生に教えていただきました) を紹介します。

基本的な方針は以下の通りです。

- Microsoft Forms の回答を Excel ファイルとしてダウンロードする
- LUNA から科目の受講者名簿を CSV ファイルダウンロードする
- LUNA から科目の受講者名簿を TSV ファイルとしてダウンロードする
- Excel の関数を使って、Microsoft Forms の回答に記録されている ID をキーとして、受講者名簿から対応する学生の学籍番号を特定する

以下、具体的な手順を説明します。

----------------
*** 1. Microsoft Forms の回答を Excel ファイルとしてダウンロード [#ia50fe83]

- 1. Microsoft Forms の回答を Excel ファイルとしてダウンロード

>まず、Microsoft Forms にアクセスし、
まず、Microsoft Forms にアクセスし、
回答をダウンロードしたいフォームを開きます。

#ref(http://kg-ict.info/img/forms-m-02.png,center)

>「応答」のタブを選択し、
「 Excel で開く」をクリックします。
「応答」のタブを選択し、
''「 Excel で開く」をクリック''します。
これにより、学生からの答案が Excel ファイルとしてダウンロードできます。
以下、このファイルを「回答ファイル」と呼びます。

#ref(http://kg-ict.info/img/forms-m-05.png,center)

>正しくダウンロードできているか、
正しくダウンロードできているか、
ダウンロードした Excel ファイル (回答ファイル) を開いて中身を見てみます。
D 列と E 列は Microsoft Forms によって自動的に記録されたフィールドです 
D 列と E 列は''Microsoft Forms によって自動的に記録されたフィールド''です 
(学生が回答したものは I 列以降にあります)。
D 列に回答者の ID が、
E 列には回答者の氏名 (カタカナ表記) が記録されています。

>メニューバー下の「編集を有効にする」をクリックして、
メニューバー下の「編集を有効にする」をクリックして、
編集できる状態にしておきます。

#ref(http://kg-ict.info/img/forms-m-09.png,center)

----------------
*** 2. LUNA から受講者名簿をダウンロード [#xc60e958]

- 2. LUNA から受講者名簿をダウンロード

>まず、LUNA にログインし、
まず、LUNA にログインし、
科目のページにアクセスします。
左側の「科目管理」の中の「科目ツール」を選択すると科目ツールのメニューが
展開されます。

#ref(http://kg-ict.info/img/forms-m-06.png,center)

>展開されたメニューの中にある「名簿ダウンロード」をクリックします。
展開されたメニューの中にある''「名簿ダウンロード」をクリック''します。
名簿ダウンロードの画面になりますので、
「ダウンロード」をクリックして、
名簿ファイルを CSV ファイルとしてダウンロードします。
名簿ファイルを TSV ファイルとしてダウンロードします。
以下、このファイルを「名簿ファイル」と呼びます。

#ref(http://kg-ict.info/img/forms-m-07.png,center)

>LUNA は少し変な仕様になっており、
名簿ファイルの中身はタブ区切りの CSV ファイル (プレーンテキスト形式) 
LUNA は少し変な仕様になっており、
名簿ファイルの中身はタブ区切りの TSV ファイル (プレーンテキスト形式) 
にもかかわらず、ファイル名の拡張子が .xls になります (つまり、
ファイルの中身と拡張子が合っていません)。

#ref(http://kg-ict.info/img/forms-m-07.png,center)
#ref(http://kg-ict.info/img/forms-m-08.png,center)

>ダウンロードした名簿ファイル (「 meibo- ○○○○ .xls 」というファイル
ダウンロードした名簿ファイル (「 meibo-*.xls 」というファイル
名のはずです) を Excel で開きます。
前述の通りファイル名の拡張子が変ですので、

  「ファイル形式と拡張子が一致しません。ファイルが破損しているか、安全ではない
  可能性があります。発行元が信頼できない場合は、このファイルを開かないでくださ
  い。ファイルを開きますか?」
>「ファイル形式と拡張子が一致しません。ファイルが破損しているか、安全ではない
可能性があります。発行元が信頼できない場合は、このファイルを開かないでくださ
い。ファイルを開きますか?」

>という確認のダイアログが表示されますが、
という確認のダイアログが表示されますが、
「はい」を選択して開きます。

#ref(http://kg-ict.info/img/forms-m-01.png,center)

----------------
*** 3. Microsoft Forms の回答ファイルに列を追加 [#ve2354d0]

- 3. Microsoft Forms の回答ファイルに列を追加
以降は純粋に Microsoft Excel の使い方の話になります。

>以降は純粋に Microsoft Excel の使い方の話になります。

>まず、回答ファイルに学籍番号を表示させるための列を追加します。
まず、回答ファイルに学籍番号を表示させるための列を追加します。
ここでは A 列に追加することにします。

----------------
***  4. Microsoft Forms の回答ファイルの A 列に式を入力 [#z845db6f]

- 4. Microsoft Forms の回答ファイルの A 列に式を入力
A2 セル (A 列 2 行目のセル) に式を入力します。

>A2 セル (A 列 2 行目のセル) に式を入力します。

  =VLOOKUP(LEFT(E2, 8),'名簿ファイル名'!$H$3:$I$999,2,FALSE)

>「名簿ファイル名」には、
LUNA からダウンロード名簿ファイルの名前を指定してください。
「名簿ファイル名」には、
''LUNA からダウンロードした名簿ファイルの名前''を指定してください。

  名簿ファイル名の入力には、式の入力途中に「名簿ファイル」のシート中の該当する
  セル (例: $H$3:$I$999) をドラッグして選択するのが簡単です。
名簿ファイル名の入力には、式の入力途中に「名簿ファイル」のシート中の該当する
セル (例: $H$3:$I$999) をドラッグして選択するのが簡単です。

>正しく入力すれば、
正しく入力すれば、
A2 セルに 2 行目の E 列の関西学院システム利用者 ID に対応する学生の学籍番号が
表示されるはずです。
名簿ファイルに対応する学生が存在しない場合は「 #N/A 」と表示されます。
名簿ファイルに対応する学生が存在しない場合は「#N/A」と表示されます。

>一見すると複雑な式に見えます。
一見すると複雑な式に見えます。
式の中身を見てゆきましょう。
式の構成としては、

  =VLOOKUP(LEFT(E2, 8),'名簿ファイル名'!$H$3:$I$999,2,FALSE)
           =========== ===========================
             学生のID     学生のIDと学籍番号の一覧

>となっています。
となっています。
VLOOKUP 関数を使って、
「学生の ID と学籍番号の一覧」から「学生の ID 」に一致する行を (VLOOKUP 
「学生の ID と学籍番号の一覧」から「学生の ID」に一致する行を (VLOOKUP 
(Vertical LOOKUP) なので縦方向に) 探索して、
その 2 列目の値を取り出す、
という意味です。
最後の FALSE は検索方法を指定しており、
「学生の ID と完全に一致しないとダメ」という意味になります。
VLOOKUP 関数でよく間違えるポイントなので、
「よくわからなければ最後に FALSE を付ける」と覚えておくとよいと思います。

>「学生の ID 」に対応する式が
「学生の ID 」に対応する式が

  LEFT(E2, 8)

>です。
です。
abc12345@nuc.kwansei.ac.jp のような ID の先頭の 8 文字を取り出しています。

>「学生のIDと学籍番号の一覧」に対応する式が
「学生のIDと学籍番号の一覧」に対応する式が

  '名簿ファイル名'!$H$3:$I$999

>です。
です。
名簿ファイル中の ID と学籍番号が書かれているのセルの範囲 (H3 から I999 まで) 
を指定しています。
$ が付いているのは絶対アドレスを意味します。
を指定しています。$ が付いているのは絶対アドレスを意味します。
この例では、受講者が 997 人を超えることはないという想定で $I$999 までを
指定しています。
受講者が 123 人なら、
通常は $H$3:$I$125 で大丈夫です (名簿ファイルの先頭に 2 行あるので、
受講者数 + 2 必要です)。

>あと一息で完了です。
あと一息で完了です。
A2 セルを、A3、A4、A5 ……セルにまとめてコピーします。
A2 セルをコピー (C-c) して、
貼り付けたいセルをまとめて選択してから貼り付け (C-v) でコピーできます。

----------------
*** 5. 正しく学籍番号が取り出せているかの確認 [#z99492cd]

- 5. 正しく学籍番号が取り出せているかの確認

>ここで紹介した、Excel を使った方法の最大の難点は、
ここで紹介した、Excel を使った方法の最大の難点は、
上記のような作業を手作業で行う必要があることです。
人間がこれを手作業で行うということは、
何回かに一回はミスをする (人間は間違う生き物だから) ということを意味します。
''何回かに一回はミスをする'' (人間は間違う生き物だから) ということを意味します。
回答ファイルと名簿ファイルの対応を何度もチェックして、
入力した式が間違ってないかを確認してください。

>とりあえず思い付くチェックリストを書いておきます。
とりあえず思い付くチェックリストを書いておきます。

-- 正しい名簿ファイルを使っているか?
過去にダウンロードした別の名簿ファイルを誤って使っていないか?
- 正しい名簿ファイルを使っているか?
~過去にダウンロードした別の名簿ファイルを誤って使っていないか?
名簿ファイルは最新のものか?
履修の追加や取り消しの前の古いものを使っていないか?

-- 「学生の ID と学籍番号の一覧」のセルの範囲は間違っていないか?
行や列がずれていないか?
- 「学生の ID と学籍番号の一覧」のセルの範囲は間違っていないか?
~行や列がずれていないか?
(非常によくある誤りです)

-- VLOOKUP 関数の第 4 引数に FALSE を忘れていないか?

-- 学生番号が「 #N/A 」となっている学生は本当に受講していないか?
-- 学生番号が「#N/A」となっている学生は本当に受講していないか? 
受講していないならなぜ Microsoft Forms に回答したのだろうか?

** Microsoft Forms の回答と学籍番号を対応させる方法 (その 2) [#f54c5c53]

他の方法として、Microsoft Forms の回答と学籍番号を対応させるための専用の
プログラムを使用するという方法もあります。

-- [[kg-merge - Microsoft Forms の応答ファイルに学生の学籍番号を記入する>https://github.com/h-ohsaki/kg-merge]]

Windows 10 (x64) および Linux (x64) 用の実行ファイルも置いてありますので、
Windows や Linux をお使いの方でしたら実行ファイルをダウンロードして
実行するだけで使用できます。

ただし、''十分に動作検証されたプログラムではありません''ので、
「プログラムが間違っているかもしれない」ということを前提に (学籍番号が正しく
記入されているかを''必ず目視で毎回チェックして'') ご利用ください。

** Microsoft Forms の回答と学籍番号を対応させる方法 (その 3) [#f54c5c53]

さらに他の方法として、
Microsoft Forms の回答と学籍番号を対応させるための
''専用の Excel アドインを使用する''という方法もあります。

- [[kg-forms-fill-addin - Microsoft Forms の回答ファイルに学生の学籍番号を記入する Excel アドイン>https://github.com/h-ohsaki/kg-forms-fill-addin]]

Excel のアドインを利用できるためには、
アドインのダウンロードやセットアップ等の作業が少し必要ですが、
いったんセットアップすれば Excel のクイックアクセスツールバーのアイコンを
押すだけで手軽に実行できます。

ただし、''十分に動作検証されたプログラムではありません''ので、「プログラムが間
違っているかもしれない」ということを前提に (学籍番号が正しく記入されているか
を''必ず目視で毎回チェックして'') ご利用ください。

** コメント [#p184b0b2]

#comment

アクセス数: 現在: &online;, 今日: &counter(today);, 合計: &counter(total);