ミチシルベ業務ラボ

明日の仕事を、
AIと自動化で軽くする
実践ワザ

Instagramの投稿で紹介したテンプレートを、登録不要・無料でその場でコピーできます。

議事録もメールも、
コピペ1回でAIが下書き

Instagramの投稿で紹介したプロンプト・式・コードを、登録不要・無料でその場でコピーできます。

ほかに 議事録・メール・資料のプロンプト集(8個) もあります。

投稿 IG-D001 のテンプレート

議事録づくり、30分→10分に

コピペで使えるプロンプト付き。会議メモを貼るだけで、決定事項・ToDoを分けた議事録の下書きができます。

手順は3ステップ

① 会議メモを箇条書きのまま用意
② 次のプロンプトに貼って送信
③ 数字・固有名詞・期限だけ人が確認

議事録プロンプト

あなたは会議の議事録を整える担当です。
下の【メモ】から議事録を作ってください。

# ルール
- メモにない情報は足さない。不明点は「要確認」と書く
- 決定事項と未決事項を分ける
- ToDoは「担当|内容|期限」の表にする(期限がなければ「未定」)
- です・ます調、全体で400字程度

# 出力の形
1. 会議名・日時・参加者
2. 決定事項
3. 未決事項・論点
4. ToDo(表)
5. 次回の予定

【メモ】
(ここに会議メモを貼る)

ポイントは2行

「メモにない情報は足さない」
「不明点は『要確認』と書く」
この2行で、AIの“盛り”を防いで
確認する場所がひと目でわかる

最後に人が見る3か所

① 数字(金額・日付・数量)
② 人名・社名・製品名
③ ToDoの担当と期限
※社外秘・個人情報は、社内のAI利用ルールを確認してから入力

時間の目安(前提つき)

手作業で清書:約30分
AIで下書き+確認:約10分
前提:1時間の会議・箇条書きメモあり
※想定の目安。会議の内容や確認の深さで変わります

投稿テンプレートの一覧へ戻る

投稿 IG-D002 のテンプレート

VLOOKUPでやりがちなミス3つ

XLOOKUPなら1本で解決。ミスの理由と、そのまま使える式・練習用の表です。

ミス① 最後の引数を省略

=VLOOKUP(A2,商品!A:C,3)
→ 省略すると「近似一致」になり
 違う商品の値が返ることがある
正しくは最後に FALSE を付ける

ミス② 列番号の「3」がずれる

表に列を1本挿入すると
「3列目」が別の列を指す
→ 気づかないまま間違った値に

ミス③ 左側の列を引けない

VLOOKUPは「検索する列が左端」が前提
商品名からコード(左側)を
引きたいときに使えない

XLOOKUPならこう書く

=XLOOKUP(A2, 商品マスタ!$A$2:$A$500, 商品マスタ!$C$2:$C$500, "該当なし")

A2 … 探す値(商品コード)
1つ目の範囲 … 探す列
2つ目の範囲 … 返したい列
"該当なし" … 見つからない時の表示

3つのミスが消える理由

① 何も指定しなければ完全一致
② 返す列を範囲で指定 → 列挿入に強い
③ 返す列が左側でもOK
+見つからない時の表示も1本で

XLOOKUPがない環境では(Excel 2019以前など)

=IFERROR(INDEX(商品マスタ!$C$2:$C$500, MATCH(A2, 商品マスタ!$A$2:$A$500, 0)), "該当なし")

※XLOOKUPはMicrosoft 365/Excel 2021以降とGoogleスプレッドシートで使えます

AIに書かせるときの頼み方

「商品マスタ」シートのA列(A2:A500)が商品コード、C列が単価です。
今のシートのA2の商品コードで単価を引くXLOOKUPを書いてください。
見つからない時は「該当なし」と表示。
範囲は絶対参照にしてください。

練習用のサンプル表:新しいスプレッドシートに「商品マスタ」「注文」の2シートを作り、それぞれA1セルに貼り付けてください(P099はマスタにないため「該当なし」になります)。

「商品マスタ」シート用

商品コード	商品名	単価
P001	ボールペン(黒)	120
P002	ボールペン(赤)	120
P003	ノート A5	180
P004	ノート B5	200
P005	クリアファイル 10枚	250
P006	付箋 75mm	300
P007	ホッチキス	650
P008	ホッチキス針	110
P009	のり(スティック)	160
P010	修正テープ	280

「注文」シート用(C列にXLOOKUPの式入り)

商品コード	数量	単価	金額
P003	5	=XLOOKUP(A2, 商品マスタ!$A$2:$A$500, 商品マスタ!$C$2:$C$500, "該当なし")	=IFERROR(B2*C2, "")
P007	1	=XLOOKUP(A3, 商品マスタ!$A$2:$A$500, 商品マスタ!$C$2:$C$500, "該当なし")	=IFERROR(B3*C3, "")
P010	3	=XLOOKUP(A4, 商品マスタ!$A$2:$A$500, 商品マスタ!$C$2:$C$500, "該当なし")	=IFERROR(B4*C4, "")
P099	2	=XLOOKUP(A5, 商品マスタ!$A$2:$A$500, 商品マスタ!$C$2:$C$500, "該当なし")	=IFERROR(B5*C5, "")
投稿テンプレートの一覧へ戻る

投稿 IG-D003 のテンプレート

期限が近いタスク、毎朝メールで届く

コピペOK|Googleスプレッドシート+GAS。期限が今日・明日のタスクを、毎朝自分宛てにメールで知らせます。

できること

・期限が「今日・明日」のタスクを
 毎朝8時台に自分へメール
・期限切れには【期限切れ】と表示
・該当がない日は送らない

① シートを用意

シート名:タスク
A列 タスク名/B列 担当
C列 期限(日付で入力)
D列 状態(「完了」で通知しない)
1行目は見出し

シートの雛形(「タスク」シートのA1に貼り付け)

タスク名	担当	期限	状態

② コードを貼る

「拡張機能」→「Apps Script」を開く
最初からあるコードを消す
下のコード全文をコピーして貼り、保存

コード全文

// 期限が近いタスクを毎朝メールで自分に通知する
// シート「タスク」:A=タスク名 B=担当 C=期限(日付) D=状態(「完了」で通知対象外)
const SHEET_NAME = 'タスク';
const DAYS_AHEAD = 1; // 1 = 今日と明日が期限のもの(期限切れも含む)

function notifyDueTasks() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sheet = ss.getSheetByName(SHEET_NAME);
  if (!sheet) throw new Error('シート「' + SHEET_NAME + '」が見つかりません');

  const today = new Date();
  today.setHours(0, 0, 0, 0);
  const limit = new Date(today);
  limit.setDate(limit.getDate() + DAYS_AHEAD);

  const rows = sheet.getDataRange().getValues().slice(1); // 1行目は見出し
  const lines = [];
  rows.forEach(function (row) {
    const task = row[0], owner = row[1], due = row[2], status = row[3];
    if (!task || String(status).trim() === '完了' || !(due instanceof Date)) return;
    const dueDay = new Date(due);
    dueDay.setHours(0, 0, 0, 0); // 時刻つきの期限でも「日付」で比べる
    if (dueDay > limit) return;
    const mark = dueDay < today ? '【期限切れ】' : '';
    const day = Utilities.formatDate(due, Session.getScriptTimeZone(), 'M/d');
    lines.push(mark + day + ' ' + task + '(' + (owner || '担当未定') + ')');
  });
  if (lines.length === 0) return; // 該当なしの日は送らない

  MailApp.sendEmail({
    to: Session.getEffectiveUser().getEmail(),
    subject: '【期限通知】' + lines.length + '件',
    body: lines.join('\n') + '\n\n' + ss.getUrl()
  });
}

// 最初に1回だけ実行:毎朝8時台に notifyDueTasks を動かすトリガーを作る
function createMorningTrigger() {
  ScriptApp.getProjectTriggers().forEach(function (t) {
    if (t.getHandlerFunction() === 'notifyDueTasks') ScriptApp.deleteTrigger(t);
  });
  ScriptApp.newTrigger('notifyDueTasks').timeBased().everyDays(1).atHour(8).create();
}

③ 動かす

createMorningTrigger を選んで「実行」
自分のアカウントで権限を許可
試すなら notifyDueTasks を実行

つまずきやすい所

・C列は文字でなく日付で入力
・タイムゾーンは東京に設定
・「確認されていません」は詳細→許可

宛先は自分のアドレスだけで、ほかの人には送られません。会社のアカウントで使う場合は、社内ルールでGASの利用が認められているか先に確認してください。

投稿テンプレートの一覧へ戻る

投稿 IG-D004 のテンプレート

ChatGPT・Claude・Gemini、どれを使う?

自分の仕事で決める「10分テスト」。同じお題を3つのAIに送り、自分の基準で比べるためのテスト3本と採点シートです。

ランキングより自分のお題

向き不向きは、仕事の内容と
その時期のバージョンで変わる
→ 同じお題を3つに投げて
 自分の基準で比べるのが納得しやすい

公平に比べるルール

・同じ文面を、同じ日に
・それぞれ新しいチャットで
・無料版か有料版かをメモ
・社外秘や個人情報は入れない

テスト1:メール返信

【テスト1:メール返信】
次の問い合わせへの返信文を作ってください。
条件:丁寧だが簡潔に/200字以内/納期は3営業日遅れる/代替案として分納を提案する
【問い合わせ】
先日発注した部品Aの納期を確認したいです。今月末に必要です。

テスト2:表の読み取り

【テスト2:表の読み取り】
次の表で、9月→10月の伸び率が最も高い商品と、その伸び率を答えてください。
表にない情報は使わないでください。
商品,9月,10月
A,120,150
B,80,72
C,45,90

テスト3:資料の構成

【テスト3:資料の構成】
社内向けに「AIツールの利用ルール」を説明する資料を作ります。
スライド5枚の構成案を、各スライドのタイトルと要点3つで出してください。
対象は、AIをほとんど使ったことがない社員です。

採点は4項目×各1〜3点

① 正確さ
② 条件を守ったか(字数・指示)
③ 手直しの少なさ
④ 日本語の自然さ

採点シート(スプレッドシートのA1に貼り付け。合計は自動計算)

テスト	観点	ChatGPT	Claude	Gemini
テスト1	正確さ			
テスト1	条件を守ったか			
テスト1	手直しの少なさ			
テスト1	日本語の自然さ			
テスト2	正確さ			
テスト2	条件を守ったか			
テスト2	手直しの少なさ			
テスト2	日本語の自然さ			
テスト3	正確さ			
テスト3	条件を守ったか			
テスト3	手直しの少なさ			
テスト3	日本語の自然さ			
合計(各1〜3点)		=SUM(C2:C13)	=SUM(D2:D13)	=SUM(E2:E13)
メモ	無料版/有料版・日付			

答え合わせと決め方

テスト2の正解は C・伸び率100%
合計点が高いものを“メイン”に
点が近ければ、使い慣れた方でOK

結果の使い方

・苦手な作業だけ別のAIに回す
・月1回、同じテストで見直す

投稿テンプレートの一覧へ戻る

投稿 IG-D005 のテンプレート

職務経歴書の「AI使えます」、こう書く

型と例文3つ。「ChatGPTを使えます」だけで終わらせない書き方です。

NG:「ChatGPTを使えます」

何の仕事に、どう使い
何が良くなったかが伝わらない
→ 読む人が判断できない

書き方の型

業務 → AIの使い方
→ 自分の確認・工夫 → 結果(数字)
「確認・工夫」を入れると
AI任せではないことが伝わる

例文① 事務

週次の売上報告で、AIを使い集計コメントの下書きを作成。数値は元データと照合して確認し、作成時間を約60分→約20分に短縮(自己計測)

例文② 営業

提案書の構成案をAIで3案作成し、顧客の課題に合わせて1案に絞り込み。上長レビューを経て、提案書作成の手順をチーム内で共有

例文③ 企画

アンケートの自由記述(約300件)をAIで分類。分類結果は1割を抜き取りで目視確認し、改善テーマの洗い出しを約2日→約半日に短縮(自己計測)

※例文は見本です。ご自身の実際の業務と数字に置き換えてください。例文の数字は見本で、実在の人物の実績ではありません。

数字の出し方

・作業の前後で、かかった時間を
 1〜2週間メモする
・「約」「自己計測」を付けて正直に
・盛ると面接の深掘りで困る

自分用に書き直すプロンプト

次の【業務メモ】を、職務経歴書の実績1〜2行に書き直してください。

# ルール
- 形は「業務 → AIの使い方 → 自分の確認・工夫 → 結果」
- メモにない事実や数字は足さない
- 数字がわからない所は[ ]の空欄にする
- 「AIを使えます」のような抽象的な表現は使わない

【業務メモ】
(例:毎週の売上報告。ChatGPTでコメントの下書きを作って、数字は元データで確認している。前より早くなった)
投稿テンプレートの一覧へ戻る

無料|職務経歴書の書き方の例

事務職の職務経歴書、書き換え例5本

「〇〇を担当」で止まりがちな事務の実績を、Before→After の1文に書き換えた例です。数字にしにくい仕事でも、量・範囲・自分の工夫を足すと、何をした人かが伝わりやすくなります。

※例はすべて架空の人物・架空の業務です。数字も例のための値で、実在の人物や当サイトの実績ではありません。ご自身の実際の業務と記録に置き換えてください。

例① 請求書

Before:請求書の発行を担当
After:取引先約40社の請求書を毎月発行。入力ミスの確認表を作り、チームで使う形にした

なぜ良くなった? 件数(約40社)と、自分が作った仕組み(確認表)が入ったから。

例② 電話・来客対応

Before:電話・来客対応
After:1日約30件の電話を一次対応。よくある質問を対応メモにまとめ、担当外の人も答えられる形にした

なぜ良くなった? 量(1日約30件)と、自分がいなくても回る工夫が入ったから。

例③ データ入力

Before:受注データの入力
After:受注データを毎日入力し、月末に元伝票と照合。確認の順番を決めて手順書にまとめた

なぜ良くなった? 「入力した」だけでなく、照合と手順書という確認の工夫が見えるから。

例④ 備品管理

Before:備品の発注・管理
After:部署の備品約60品目を一覧で管理。発注の目安を決め、誰が見ても発注できる形にした

なぜ良くなった? 範囲(約60品目)と、人に頼らず回る仕組み(発注の目安)が入ったから。

例⑤ 新人のサポート

Before:新人のサポート
After:新人3名に経費精算の手順を説明。質問の多かった箇所をまとめ、マニュアルを改訂した

なぜ良くなった? 人数(3名)と、後に残したもの(マニュアルの改訂)が入ったから。

自分の実績を棚卸しする3つの質問

①その仕事の量・頻度・範囲は?
 (件数・社数・人数・品目。正確でなければ「約」を付ける)
②自分で決めた・作った・変えたものは?
 (確認表・手順書・メモ・作業の順番など)
③その結果、誰の何が楽になった?
 (数字がなければ「担当外の人も対応できるようになった」など、起きた変化を書く)

書くときの注意

・社名や取引先名は書かず「取引先約40社」のように数でぼかす
・社外秘の情報は書かない(迷ったら会社のルールを確認)
・数字は記録や記憶で確かめられる範囲で。盛ると面接で困る

ここに載せているのは書き方の一例です。書類の評価や選考の結果を約束するものではありません。

予告:事務職の職務経歴書 AI 下書きキット(準備中)

上の3つの質問に答えたメモから、実績の1文の下書きを作るためのプロンプトと例文、社名をぼかす書き方をまとめる予定です。
キットは、AIを活用して作業効率・調査量・制作速度を高めながら、品質確認を行って作成する予定です。

キットが気になる(準備中)

公開したときは、このページに掲載します。

投稿テンプレートの一覧へ戻る

無料テンプレート ①

議事録・メール・資料づくりのプロンプト集(8個)

ChatGPT・Gemini・Claudeなど、普段使っている生成AIに貼り付けて使えます。( )の部分を自分の内容に書き換えてください。

社外秘の情報・顧客の個人情報は入力しないでください。勤務先のAI利用ルールがある場合は、そちらに従ってください。AIの出力は、日付・金額・固有名詞を必ず自分で確認してから使いましょう。

1. 会議メモ → 議事録に整える決定事項・宿題・期限を表にまとめる
あなたは会議の議事録を作るアシスタントです。
以下の会議メモを、社内共有用の議事録に整えてください。

# 出力の形式
1. 会議名・日時・参加者(メモにない項目は「不明」)
2. 決定事項(箇条書き)
3. 宿題:担当者/内容/期限 の表
4. 保留になったこと・次回の論点
5. 全体の要約(3行)

# ルール
- メモに書かれていないことは書かない
- 推測で補った箇所には「(要確認)」と付ける
- 文体は「です・ます」で統一する

# 会議メモ
(ここに貼り付け)
2. 長い文字起こし → 要点だけ抜き出す録音の文字起こしを5分で読める形に
以下は会議(または打ち合わせ)の文字起こしです。
欠席した人が5分で把握できるように、要点をまとめてください。

# 出力
- 結論(1〜2文)
- 話し合われた論点ごとに:論点/出た意見/結論(結論が出ていなければ「未決」)
- 次のアクション(誰が・何を・いつまでに)
- 聞き取れなかった可能性がある箇所(固有名詞・数字)

# 条件
- 雑談や言い直しは省く
- 発言者の意図を変えない。数字は原文のまま書く

# 文字起こし
(ここに貼り付け)
3. メールの返信を下書きする伝えたいことを箇条書きで渡すだけ
以下の受信メールへの返信を下書きしてください。

# 条件
- 相手:(例:社外の取引先/社内の上司)
- 伝えたいこと:(例:日程は承諾する。見積は来週水曜までに送る)
- トーン:丁寧だが簡潔に。本文は300字以内
- 件名の案を1つ付ける
- 最後に、送る前に私が確認すべき点(日付・金額・固有名詞)を箇条書きで出す

# 受信メール
(ここに貼り付け)
4. 依頼・お断りのメールを角を立てずに書く言いにくい用件を3パターンで
次の用件で、相手との関係を損なわないビジネスメールを書いてください。

# 用件
(例:今月中の納品をお願いされたが、来月10日までなら対応できると伝えたい)

# 相手と関係
(例:付き合いの長い取引先の担当者)

# 出力
- 丁寧さの違う3パターン(かなり丁寧/標準/簡潔)
- それぞれ件名と本文
- 「できること・代わりの案」を必ず入れる
- 断定的な言い方や、相手を責める表現は使わない
5. 資料の構成案(スライドの骨子)を作る白紙から始めない
次の条件で、プレゼン資料の構成案を作ってください。

# 条件
- テーマ:(例:営業日報のフォーマット統一の提案)
- 聞き手:(例:部長と課長3名)
- 時間・枚数:(例:10分、8枚以内)
- 聞き手に決めてほしいこと:(例:来月から試験導入するかどうか)

# 出力
- スライドごとに:タイトル/伝えるメッセージ(1文)/入れる内容(箇条書き3つまで)/入れると良い図表
- 最初の2枚で「結論と、決めてほしいこと」が分かる構成にする
- 聞き手から出そうな質問を3つと、その答え方の方針
6. 長い資料を上司向けに1枚で要約する報告・稟議の前に
以下の資料を、忙しい上司が1分で判断できる1枚の要約にしてください。

# 形式
- 件名(20字以内)
- 結論・お願いしたいこと(2文以内)
- 背景(3行以内)
- 選択肢と、それぞれの良い点・注意点
- 費用・期限・リスク(資料に記載がなければ「記載なし」)

# ルール
- 資料にない数字や事実を加えない
- 専門用語には短い説明を付ける

# 資料
(ここに貼り付け)
7. 社内文書を校正する誤字・敬語・分かりにくい箇所を指摘
以下の文章を校正してください。

# してほしいこと
1. 誤字脱字・敬語の誤り・表記ゆれを、表(修正前/修正後/理由)で指摘
2. 読み手が誤解しそうな箇所の指摘と、書き換えの案
3. 最後に、修正をすべて反映した全文

# 条件
- 読み手:(例:社内の他部署の人)
- 意味や主張は変えない。文字数は今の±1割以内

# 文章
(ここに貼り付け)
8. Excel・スプレッドシートの関数を作ってもらうやりたいことを日本語で伝えるだけ
Googleスプレッドシート(またはExcel)で使う数式を作ってください。

# シートの状態
- A列:(例:日付)
- B列:(例:担当者名)
- C列:(例:売上金額)
- データは2行目から(例:500行程度)

# やりたいこと
(例:担当者ごと・月ごとの売上合計を、別の表に自動で出したい)

# 出力
- そのまま貼り付けられる数式と、入力するセル
- 数式の意味を、初心者向けに3行で説明
- よくあるエラーと、その直し方

無料テンプレート ②

宛名入りメールの一斉送信テンプレート(Googleスプレッドシート+GAS)

スプレッドシートの一覧から、宛名入りの定型メールをまとめて送ります。毎朝の自動実行もできます。Googleアカウントがあれば無料で使えます。

  1. スプレッドシートに「送信リスト」シートを作り、1行目に見出しを入れる(下の表)
  2. メニューの「拡張機能 → Apps Script」を開き、下のコードを貼り付けて保存
  3. まずはそのまま sendMails を実行(最初はテストモードで、メールは送られません。実行ログで文面を確認)
  4. 文面に問題がなければ、コードの DRY_RUN = true を false に変えて実行
  5. 毎朝自動で送るなら、setupDailyTrigger を1回だけ実行
メールアドレス名前会社名送信状況
yamada@example.com山田A株式会社(空欄)
sato@example.com佐藤B株式会社送信済み 2026/10/01 09:02
コード(mail_template.gs)件名・本文の {名前} などは、その行の値に置き換わります
/**
 * 定型メール自動送信テンプレート(Googleスプレッドシート + Apps Script)
 * 配布:ミチシルベ業務ラボ(無料・改変自由)
 *
 * 【準備】
 * 1. スプレッドシートに「送信リスト」シートを作り、1行目に見出しを入れる
 *    必須:メールアドレス / 名前 / 送信状況   任意:会社名 など自由に追加OK
 * 2. 拡張機能 → Apps Script を開き、このコードを貼り付けて保存
 * 3. まず DRY_RUN = true のまま sendMails を実行 → 実行ログで文面を確認
 * 4. 問題なければ DRY_RUN = false にして実行(送信した行に「送信済み」が入る)
 * 5. 毎朝自動で送るなら setupDailyTrigger を1回だけ実行
 *
 * 件名・本文の {見出し名} は、その行の値に置き換わります(例:{名前})。
 * 「送信状況」が空の行だけ送るので、同じ人に二重に送りません。
 */

// ===== ここを書き換える =====
var SHEET_NAME = '送信リスト';
var SUBJECT = '【ご案内】{名前}様 来週の定例会について';
var BODY = [
  '{会社名}',
  '{名前} 様',
  '',
  'いつもお世話になっております。',
  '来週の定例会の資料をお送りします。',
  'ご不明点があれば、このメールにご返信ください。',
  '',
  'よろしくお願いいたします。'
].join('\n');
var DRY_RUN = true;     // true の間は送信せず、実行ログに文面を出すだけ
var MAX_PER_RUN = 20;   // 1回の実行で送る上限(送りすぎ防止)
var TRIGGER_HOUR = 9;   // setupDailyTrigger で毎日実行する時(0〜23)

// ===== 本体 =====
function sendMails() {
  var lock = LockService.getScriptLock();
  if (!lock.tryLock(10000)) {
    console.log('前回の処理が実行中のため、スキップしました');
    return;
  }
  try {
    var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(SHEET_NAME);
    if (!sheet) throw new Error('「' + SHEET_NAME + '」シートがありません');
    var values = sheet.getDataRange().getValues();
    var header = values[0].map(function (h) { return String(h).trim(); });
    var col = {};
    header.forEach(function (h, i) { col[h] = i; });
    ['メールアドレス', '名前', '送信状況'].forEach(function (k) {
      if (!(k in col)) throw new Error('1行目に見出し「' + k + '」がありません');
    });

    var limit = Math.min(MAX_PER_RUN, MailApp.getRemainingDailyQuota());
    var count = 0;
    for (var r = 1; r < values.length && count < limit; r++) {
      var row = values[r];
      var to = String(row[col['メールアドレス']]).trim();
      if (!to || String(row[col['送信状況']]).trim() !== '') continue;
      var statusCell = sheet.getRange(r + 1, col['送信状況'] + 1);
      if (!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(to)) {
        if (!DRY_RUN) statusCell.setValue('エラー:アドレスの形式');
        console.log((r + 1) + '行目:アドレスの形式が不正のためスキップ');
        continue;
      }
      var subject = fill_(SUBJECT, header, row);
      var body = fill_(BODY, header, row);
      count++;
      if (DRY_RUN) {
        console.log('[テスト・未送信] ' + (r + 1) + '行目 宛先:' + to + '\n件名:' + subject + '\n' + body);
        continue;
      }
      try {
        MailApp.sendEmail(to, subject, body);
        statusCell.setValue('送信済み ' + Utilities.formatDate(new Date(), 'Asia/Tokyo', 'yyyy/MM/dd HH:mm'));
      } catch (e) {
        statusCell.setValue('エラー:' + e.message);
      }
    }
    console.log((DRY_RUN ? 'テスト完了(未送信):' : '送信完了:') + count + '件');
  } finally {
    lock.releaseLock();
  }
}

// {見出し名} をその行の値に置き換える(見出しにない名前はそのまま残す)
function fill_(text, header, row) {
  return text.replace(/\{([^{}]+)\}/g, function (m, key) {
    var i = header.indexOf(key.trim());
    return i === -1 ? m : String(row[i]);
  });
}

// 毎日 TRIGGER_HOUR 時台に sendMails を自動実行する(重複しないよう先に削除)
function setupDailyTrigger() {
  deleteTriggers();
  ScriptApp.newTrigger('sendMails').timeBased().everyDays(1).atHour(TRIGGER_HOUR).create();
  console.log('毎日' + TRIGGER_HOUR + '時台に自動実行します');
}

// 自動実行をやめる
function deleteTriggers() {
  ScriptApp.getProjectTriggers().forEach(function (t) {
    if (t.getHandlerFunction() === 'sendMails') ScriptApp.deleteTrigger(t);
  });
}

「送信状況」が空の行だけに送るため、同じ人へ二重には送りません。初回の実行時に、Googleから権限の確認画面が表示されます(スプレッドシートの編集・メール送信・自動実行の設定)。1日に送れるメールの数にはGoogle側の上限があります。社外への一斉送信は、勤務先のルールを確認してから使ってください。広告・宣伝のメールを送る場合は特定電子メール法(同意の取得、送信者情報と配信停止方法の表示)に従ってください。

有料テンプレート集(note)

Googleスプレッドシート自動化スクリプト10本+業務プロンプト30個

当方(ミチシルベ業務ラボ)の有料商品です

このページの無料テンプレートより多くのスクリプトとプロンプトをまとめたものを、noteで販売しています。購入前に、noteの無料部分で内容と注意事項を読めます。

入っているもの

・Googleスプレッドシート/Gmail/Googleカレンダー向けの自動化スクリプト(GAS)10本。全文を貼り付け、先頭の設定値を変えて使います
・業務で使えるAIプロンプト30個(メール、議事録、表計算、資料づくり、顧客対応、自己管理)
・はじめての人向けの手順(貼り方、権限の承認、自動実行の設定、動かないときの確認点)

スクリプト10本の内容

期限タスクの毎朝通知/フォーム回答の通知/シートの日次バックアップ/ラベル付きGmailをシートに記録/カレンダーの予定の書き出し/重複データのハイライト/Driveフォルダのファイル一覧/ドキュメントの差し込み作成/週次集計メール/更新日時の自動入力

向いていない人

・Googleスプレッドシートを使えない環境の人(Excelだけの運用ではGASは動きません)
・会社のルールで、スクリプトの実行やAIへの入力が禁止されている人
・貼るだけで業務が完全に自動になるものを求める人(設定値の変更と結果の確認は必要です)

削減できる時間は保証しません。業務の内容・データ量・確認の深さによって変わります。価格は検証のため変更することがあります(2026年10月4日時点:100円)。最新の価格と内容は、noteのページでご確認ください。

noteで内容を見る(無料部分あり)