0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GASで校務メールの定型文を自動生成する: 教員向けの小さな時短テンプレート

0
Posted at

GASで校務メールの定型文を自動生成する: 教員向けの小さな時短テンプレート

Google Apps Script(GAS)を使うと、Google スプレッドシートに入力した情報から、保護者連絡や校内連絡の定型メール文を生成できます。

この記事では、教員が日々の校務で使いやすいように、次の流れを1つのテンプレートとしてまとめます。

  • スプレッドシートに連絡内容を入力する
  • GASでメール本文を生成する
  • 生成結果をシートに書き戻す
  • 必要に応じて人が確認してから送信する

送信まで自動化するのではなく、まずは「本文作成の手間を減らす」ことに絞ります。校務では誤送信や表現の確認が重要なので、最初の導入ではこの形が扱いやすいです。

想定するシート構成

スプレッドシートに、次のような列を用意します。

項目
A 宛名 山田様
B 児童生徒名 山田太郎さん
C 用件 明日の持ち物について
D 補足 体育館シューズを持参してください
E 生成文 GASで出力

1行目は見出し、2行目以降にデータを入れる想定です。

GASコード

スプレッドシートで 拡張機能 -> Apps Script を開き、次のコードを貼り付けます。

function generateSchoolMessages() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const lastRow = sheet.getLastRow();

  if (lastRow < 2) {
    return;
  }

  const values = sheet.getRange(2, 1, lastRow - 1, 4).getValues();

  const messages = values.map(([recipient, studentName, subject, note]) => {
    if (!recipient || !studentName || !subject) {
      return [''];
    }

    const body = buildMessage({
      recipient,
      studentName,
      subject,
      note
    });

    return [body];
  });

  sheet.getRange(2, 5, messages.length, 1).setValues(messages);
}

function buildMessage({ recipient, studentName, subject, note }) {
  const noteText = note ? `\n\n${note}` : '';

  return `${recipient}

いつもお世話になっております。
${studentName}について、${subject}のご連絡です。${noteText}

ご確認のほど、よろしくお願いいたします。`;
}

実行すると、E列にメール本文が生成されます。

メニューから実行できるようにする

毎回 Apps Script の画面を開くのは手間なので、スプレッドシート上部に独自メニューを追加します。

function onOpen() {
  SpreadsheetApp.getUi()
    .createMenu('校務ツール')
    .addItem('連絡文を生成', 'generateSchoolMessages')
    .addToUi();
}

これで、シートを開いたときに 校務ツール -> 連絡文を生成 から実行できます。

入力漏れを見つけやすくする

宛名、児童生徒名、用件が空欄の行は、生成文を空欄にしています。

if (!recipient || !studentName || !subject) {
  return [''];
}

空欄のままにしておくと、あとからシート上で未入力行を確認しやすくなります。必要であれば、次のようにメッセージを出す形にもできます。

if (!recipient || !studentName || !subject) {
  return ['入力不足があります'];
}

AI APIを使う前に、まずテンプレート化する

校務効率化というと、すぐにAI APIを使いたくなる場面があります。ただ、定型連絡の多くは、いきなりAIに任せなくてもテンプレート化だけで十分に扱いやすくなります。

テンプレート化から始めるメリットは次の通りです。

  • 出力文の形をそろえやすい
  • 予期しない言い回しが出にくい
  • APIキーを扱わずに始められる
  • 学校や学年の表現ルールに合わせて調整しやすい

特に校務で使う文章は、便利さだけでなく確認しやすさも大切です。まずはGASだけで固定文を作り、必要になった段階でAI APIや別の自動化を検討すると、運用に乗せやすくなります。

少し応用: 用件ごとに文面を切り替える

用件の種類が決まっている場合は、テンプレートを分岐できます。

function buildMessage({ recipient, studentName, subject, note }) {
  const noteText = note ? `\n\n${note}` : '';

  if (subject.includes('持ち物')) {
    return `${recipient}

いつもお世話になっております。
${studentName}の持ち物についてご連絡いたします。${noteText}

ご準備のほど、よろしくお願いいたします。`;
  }

  if (subject.includes('欠席')) {
    return `${recipient}

いつもお世話になっております。
${studentName}の欠席に関するご連絡です。${noteText}

ご確認のほど、よろしくお願いいたします。`;
  }

  return `${recipient}

いつもお世話になっております。
${studentName}について、${subject}のご連絡です。${noteText}

ご確認のほど、よろしくお願いいたします。`;
}

includes() を使うだけでも、簡単な分類なら対応できます。分類が増えてきたら、シート側に「連絡種別」列を作り、種別ごとにテンプレートを切り替える設計にすると管理しやすくなります。

まとめ

GASを使うと、スプレッドシートの入力内容から校務連絡の定型文を生成できます。

今回のポイントは、送信まで自動化しないことです。まずは本文作成を補助する形にすると、現場の確認フローを残したまま小さく導入できます。

教員向けのAI活用やGAS校務効率化の実践メモは、note と Kindle でも整理しています。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?