GAS入門: スプレッドシートから毎朝の未対応リストをメールで受け取る
Google Apps Scriptを初めて使う人向けに、スプレッドシートの未対応タスクを毎朝メールで受け取る小さな自動化を作ります。
AIを使い始めた人が最初につまずきやすいのは、「便利そうだけど、自分の仕事のどこに入れればいいのか分からない」という点です。
そこで最初の題材としておすすめなのが、Google Apps Script、通称GASです。GASはGoogleスプレッドシート、Gmail、カレンダー、ドライブなどをつなげて、日々の小さな作業を自動化できます。AIにコードを書いてもらう練習にも向いています。
この記事では、スプレッドシートにある未対応タスクを毎朝メールで受け取る仕組みを作ります。完成すると、「シートを開かなくても今日見るべきものが届く」状態になります。
作るもの
スプレッドシートに次のような表を用意します。
| A列: タスク | B列: 担当 | C列: 期限 | D列: 状態 |
|---|---|---|---|
| 請求書を確認する | 自分 | 2026/06/20 | 未対応 |
| 資料を送る | 自分 | 2026/06/21 | 完了 |
| 問い合わせに返信する | 自分 | 2026/06/19 | 未対応 |
このうち、D列が「未対応」の行だけを集めて、自分のGmailに送ります。
手順1: スプレッドシートを作る
Googleスプレッドシートを新規作成し、1行目に見出しを入れます。
- A1: タスク
- B1: 担当
- C1: 期限
- D1: 状態
2行目以降に、テスト用のタスクを数件入れてください。状態には「未対応」または「完了」と入力します。
手順2: Apps Scriptを開く
スプレッドシート上部のメニューから、拡張機能 → Apps Script を開きます。
最初に表示される Code.gs に、次のコードを貼り付けます。
function sendOpenTaskDigest() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
const values = sheet.getDataRange().getValues();
const header = values.shift();
const taskIndex = header.indexOf('タスク');
const ownerIndex = header.indexOf('担当');
const dueIndex = header.indexOf('期限');
const statusIndex = header.indexOf('状態');
const openTasks = values.filter((row) => row[statusIndex] === '未対応');
if (openTasks.length === 0) {
MailApp.sendEmail({
to: Session.getActiveUser().getEmail(),
subject: '今日の未対応タスクはありません',
body: '未対応タスクは0件です。落ち着いて一日を始められます。',
});
return;
}
const lines = openTasks.map((row, index) => {
const task = row[taskIndex];
const owner = row[ownerIndex] || '未設定';
const due = row[dueIndex] || '期限なし';
return `${index + 1}. ${task}\n 担当: ${owner}\n 期限: ${due}`;
});
MailApp.sendEmail({
to: Session.getActiveUser().getEmail(),
subject: `未対応タスク ${openTasks.length}件`,
body: `今日確認したい未対応タスクです。\n\n${lines.join('\n\n')}`,
});
}
手順3: まず手動で実行する
Apps Script画面の上部で関数 sendOpenTaskDigest を選び、実行ボタンを押します。
初回は権限確認が出ます。自分のスプレッドシートを読み、自分宛にメールを送るための確認です。内容を見て問題なければ許可します。
実行後、Gmailにメールが届けば成功です。
手順4: 毎朝届くようにする
左側の時計アイコン、または「トリガー」を開きます。
新しいトリガーを追加し、次のように設定します。
- 実行する関数:
sendOpenTaskDigest - イベントのソース: 時間主導型
- 時間ベースのトリガーのタイプ: 日付ベースのタイマー
- 時刻: 朝の好きな時間帯
これで、スプレッドシートを開かなくても未対応タスクがメールで届くようになります。
AIに手伝わせるときの頼み方
GASはJavaScriptに近いので、AIに相談しやすい分野です。ただし、いきなり「便利なGASを書いて」だと失敗しやすくなります。
次のように、表の列とやりたいことを具体的に書くと精度が上がります。
GoogleスプレッドシートでGASを書きたいです。
列は A:タスク, B:担当, C:期限, D:状態 です。
D列が「未対応」の行だけを集めて、毎朝Gmailで自分に送るコードを書いてください。
初回実行、トリガー設定、権限確認の注意点も説明してください。
失敗しやすいポイント
まず、列名を変えたらコード側の見出しも合わせてください。この記事のコードは、1行目の「タスク」「担当」「期限」「状態」という文字を探しています。
次に、メールが届かない場合は迷惑メール、実行ログ、トリガーの設定時刻を確認します。GASには実行時間やメール送信数などの制限もあります。大量送信や長時間処理には向きません。
最後に、仕事で使う場合は、個人情報や機密情報を扱いすぎない設計にしてください。最初は「自分だけに届く小さな通知」から始めるのが安全です。
次に試すとよい改造
- 期限が今日以前のタスクだけ送る
- 担当者ごとにメールを分ける
- 完了したタスクに自動で完了日を入れる
- SlackやGoogle Chatに通知する
- AIにタスク文を分類させる
GASのよいところは、いきなり大きなアプリを作らなくていいことです。まずは「毎朝シートを見る」を「毎朝メールが届く」に変える。それだけでも、日々の摩擦はかなり減ります。