MENU
IT
PR

【PowerAutomate】採点作業を自動化 Formsテスト結果の連絡 

PowerAutomate Forms 採点 自動化 
ほし
記事内に商品プロモーションを含む場合があります

こんにちは、ほしコラム管理人の「ほし」です。

今回は、職場の教育テストや学校での小テストで利用できるようなFormsの結果を採点して

不合格者に再テスト依頼を出すフローを紹介していきます。

上記を利用することで、採点時間の短縮と点数が芳しくない人へのフォローがしやすくなります。

はじめに

この記事で解決できることは、以下のようになっています。

  • Formsを使用した採点作業を自動化したい
  • 採点結果を踏まえて、未合格者に対して再テストの依頼を自動化したい
  • PowerAutomateでExcel・Formsの自動化について学びたい

Formsの課題

現状、Formsの「新しいクイズ」を使用して採点やフィードバックコメントを記載できます。

Forms 新しいクイズ
Forms 新しいクイズ

しかし、「解答のレビュー」や「スコアの投稿」は手動で作業することになってしまいます。

Forms クイズ 解答のレビュー・スコアを投稿する
Forms 解答のレビュー・スコアを投稿する

PowerAutomateの処理イメージ

今回実装する処理イメージは以下のようになっています。

手動で作業した場合とPowerAutomateで作業した場合でのイメージになります。

PowerAutomate 処理イメージ
手動で作業した場合 PowerAutomateで作業した場合のイメージ図になります。

簡単に処理を分割すると3つの処理になります。

  • Formsの回答を取得
  • OfficeScriptsでFormsの回答を採点
  • 不合格者に対してメールを送信する

事前準備をすることで、手動で採点している作業が自動化できる、とても楽だと思いませんか?

フロー作成に必要な事前準備

フローを作成するにあたり必要な作業が2つあります。

  • テスト用のForms
  • 集計用のExcel

そこまで大変な作業ではないので問題ないと思います。

Formsの回答をExcelに転記する方法は、以下に記事を作成してますので参考にしてみてください!

あわせて読みたい
【PowerAutomate】Formsの回答をExcelに自動転記する方法
【PowerAutomate】Formsの回答をExcelに自動転記する方法

今回作成したFormsとExcel

今回準備したFormsは、第5代までの総理大臣をクイズ形式で出した内容になります。

問題の内容や、出題数は任意の数で良いと思います。

PowerAutomate Forms クイズ
PowerAutomate Formsクイズ
PowerAutomate Forms転記 Excel
PowerAutomate 事前準備したExcel

Excelは、Formsの内容を集計できるように事前準備が4つ必要になります。

  • シート名を任意の名前に変更する
  • テーブルを作成して情報を設定する(列数は、問題数+3)
  • テーブル名を任意の名前に変更する
  • 正答を準備する

これを準備しておくだけで、PowerAutomateでFormsのテストを採点することができます。

PowerAutomate 処理フロー

今回紹介するPowerAutomateの全体処理フローとしては以下のようになっています。

PowerAutomate 処理フロー
PowerAutomate 全体処理フロー

スクリプトの実行までは、前回紹介している以下の記事を参考にしていただければと思います!

あわせて読みたい
【PowerAutomate】Formsの回答をExcelに自動転記する方法「OfficeScripts編」
【PowerAutomate】Formsの回答をExcelに自動転記する方法「OfficeScripts編」

そのため、今回はOfficeScriptsの内容と「条件」以降の内容について詳しく説明していきます。

OfficeScripts 実装内容

OfficeScriptsでは以下のようなソースコードになっています。

  • 処理対象のシート名:「テスト結果1回目」
  • 更新対象のテーブル:テスト1回目
  • 引数(PowerAutomateから渡す値):生徒のForms回答結果、回答者のメールアドレス
  • 戻り値(PowerAutomateに返す値):採点結果

今回は、1つのテストを集計する作業を実施しています。

しかし、教科ごとに分けたいや再テストの結果は別のテーブルに場合などは、

Forms毎に「処理対象のシート名」、「更新対象のテーブル」、「引数」、「模範解答」などを変更すれば応用することができます。 

1function main(workbook: ExcelScript.Workbook, 
2  ans1: string, //解答1
3  ans2: string, //解答2
4  ans3: string, //解答3
5  ans4: string, //解答4
6  ans5: string, //解答5
7  user: string  //回答者のメールアドレス
8  ){
9 const sheet = workbook.getWorksheet("テスト結果1回目") ;
10 const value = [ans1,ans2,ans3,ans4,ans5];
11 // 模範回答の範囲を選択
12 //answerは[][]の2重配列の構造になっています
13 const answer = sheet.getRange("M3:M7").getValues();
14 // 点数
15 let score = 0 ;
16 // 採点結果
17 let result = "不合格";
18  // 問題の数だけ繰り返す。配列の添字の開始は0から始まります
19  for (let i = 0; i < value.length; i++) {
20    //模範回答の[i][0]番目を取得
21    let ans = answer[i][0];
22    //模範回答と解答の内容を比較する
23    if ( value[i] == ans){
24      // 合っていたら点数を加算する
25      score = score +  20 ;
26    }
27}
28// 点数が80点以上か比較する
29if (score >= 80){
30  //結果を合格にする
31  result = "合格"
32}
33
34 let table_name = "テスト1回目";
35  // テーブルを取得
36 let table = workbook.getTable(table_name);
37 // テーブルに登録する配列に、点数・結果・メールアドレスを追加する
38 value.push(score.toString(),result,user);
39 // テーブルの行番号を取得
40 let rows = table.getRowCount() - 1;
41
42  // テーブルに値を追加
43  table.addRow(rows, value)
44  // 採点結果をPowerAutomateに返す
45 return result
46}

PowerAutomate 条件

OfficeScriptsの実行結果を踏まえてメールの送信内容を変更するので、「result」の内容を条件の左辺に代入して合否結果を確認するようにしましょう。

result」は、テストの採点結果になります!

PowerAutomate 条件
PowerAutomate 条件 合否の判定

「不合格」の場合に、再テスト依頼のメールの送信を実施します。

「合格」の場合は、合格メールの送信を実施します。

PowerAutomate メールの送信(V2)

条件に一致しても、不一致の場合でもメールの送信を使用するのは、変わらないので設定内容だけ解説します。

  • 宛先 : Forms回答者のメールアドレス「Responders’ Email」
  • 件名 : お好きな内容を設定してください。
  • 本文 : お好きな内容を設定してください。
PowerAutomate メールの送信(V2)
PowerAutomate メールの送信(V2)

氏名を取得したい場合などは、メールアドレスと氏名の紐づいたテーブルをExcel上に準備しておくと良いと思います!

さいごに

これまでで、PowerAutomateでFormsを使用したテストを採点する方法について解説してきました。

この記事の内容をもとに指導者・教育者の方々の業務効率化につながればと思います。

PowerAutomateなどを使用した業務効率化について紹介していきますので、ぜひ読んでいただければと思います。

TeamsやSharePoint、ExcelなどOffice製品を使用した業務効率化について紹介しています。

あわせて読みたい
【PowerAutomate】ExcelファイルをPDFファイルに自動変換する方法
【PowerAutomate】ExcelファイルをPDFファイルに自動変換する方法
あわせて読みたい
【PowerAutomate】Teamsで個人・タグをメンションする方法
【PowerAutomate】Teamsで個人・タグをメンションする方法
ABOUT ME
ほし
ほし
エンジニア
ほしコラム管理人のほしです。 20代のITエンジニアです。 PowerAutomateで業務効率化の方法を中心に紹介していきます! たまに日常生活についても記事にしていきます! ほしコラム - にほんブログ村
記事URLをコピーしました