AI×GASでメール作業を自動化!令和6年開始の住民税通知電子化にも対応できる秘訣

「日々のメール対応に追われて、本来の業務に集中できない…」
「令和6年度から住民税の通知が電子データになったけど、どう対応すればいいの?」
事業を運営されている経営者様やご担当者様の中には、このようなお悩みや疑問をお持ちの方もいらっしゃるのではないでしょうか。人手不足が叫ばれる昨今、ノンコア業務の効率化は喫緊の課題です。また、法改正への対応も避けては通れません。
もし、AIの力を借りて、面倒なメール作成や送信作業を自動化でき、さらに新しい制度にもスムーズに対応できるとしたら、どうでしょうか?
この記事では、プログラミング経験がない方でも大丈夫!今話題のAIを活用してGoogle Apps Script (GAS) のコードを生成し、スプレッドシートから簡単にメールの下書きを自動作成・送信する方法を解説します。さらに、この仕組みを利用して、令和6年度から電子データで提供が始まった個人住民税の特別徴収税額通知を従業員へ配布するアイデアまでご紹介します。
「なんだか難しそう…」と感じた方もご安心ください。専門用語はなるべく使わず、具体的なステップで分かりやすくお伝えします。この記事を読み終える頃には、「これならうちでも取り入れられるかも!」と、業務効率化への新たな一歩を踏み出すヒントが見つかるはずです。
なぜ今、AIとGASによる「自動化」が注目されるのか?
日々の業務に追われていると、新しい技術を取り入れるのは億劫に感じられるかもしれません。しかし、AIとGASを活用した自動化には、それ以上のメリットがあるのです。
1. 圧倒的な業務効率アップと人手不足への対応
請求書送付、顧客へのフォローメール、社内通知…これらの定型的なメール業務は、意外と時間を取られるものです。AIとGASを使えば、これらの作業を自動化し、大幅な時間短縮を実現できます。空いた時間を、より創造的な業務やお客様対応に充てられるようになれば、事業の成長にも繋がります。慢性的な人手不足に悩む中小企業にとって、これは大きな助けとなるでしょう。
2. ヒューマンエラーの削減
手作業でのメール作成や宛先設定には、どうしてもミスがつきものです。誤送信は、顧客からの信頼を損なう原因にもなりかねません。自動化されたシステムなら、設定さえ間違えなければ、正確かつ確実に業務を遂行してくれます。下書きとして一旦保存することで、送信前の最終確認も容易になります。
3. 令和6年度施行!住民税特別徴収税額通知の電子データ化への対応
これまで紙で交付されていた個人住民税の特別徴収税額通知書(納税義務者用)が、令和6年度分から、希望する事業主に対して電子データで提供されることになりました。これは大きな変化であり、ペーパーレス化や業務効率化のチャンスです。 電子データで受け取った通知を、各従業員へ安全かつ効率的に配布する方法が求められます。ここで、GASによるメール下書きの自動作成が役立つのです。
4. AI技術の進化で、専門知識がなくても大丈夫!
「プログラミングなんてできないし…」という方も、もう心配いりません。近年、ChatGPTをはじめとする生成AIの進化は目覚ましく、自然な言葉で指示するだけで、GASのようなプログラミングコードを生成してくれるようになりました。もちろん、生成されたコードが完璧とは限りませんが、たたき台としては十分すぎるほどです。これにより、専門知識がない方でも、業務自動化の恩恵を受けやすくなりました。
AIにGASコードを作ってもらおう!メール下書き自動作成の基本ステップ
それでは、実際にAIを使ってGASコードを生成し、スプレッドシートからメールの下書きを自動作成する基本的な流れを見ていきましょう。ここでは、例として「スプレッドシートに記載された顧客リスト宛に、定型のサンキューメールの下書きを作成する」ケースを想定します。
準備するもの
- Googleアカウント(Gmail、Googleスプレッドシートが使えるように)
- AIチャットサービス(例:ChatGPT、Geminiなど)
ステップ1:AIにどんなメールの下書きを作成したいか具体的に伝える
まず、AIチャットサービスを開き、どのようなGASコードを作成してほしいか、できるだけ具体的に指示を出します。
【AIへの指示文 例】
Googleスプレッドシートの特定のシート(例:シート名「顧客リスト」)に入力された情報(A列:氏名、B列:メールアドレス、C列:購入商品名)を読み取り、各顧客に個別のメールを自動送信するGoogle Apps Scriptを作成してください。
メールの件名:「[あなたの会社名] ご購入ありがとうございます」
メール本文:
「[A列の氏名] 様
この度は、[C列の購入商品名] をご購入いただき、誠にありがとうございます。
今後とも[あなたの会社名]をよろしくお願いいたします。
株式会社〇〇(あなたの会社名)
担当:△△」
・メールアドレスが空欄の行は送信しないようにしてください。
・送信済みの行がわかるように、D列に「送信済み」と自動で入力されるようにしてください。
ポイント
- 具体的に書く: どのシートのどの列の情報をどう使うか、メールの件名や本文はどうするかなど、詳細に伝えましょう。
- 条件を加える: 「メールアドレスが空欄の場合は送信しない」「送信済みフラグを立てる」など、必要な条件も忘れずに。
- 丁寧な言葉で: AIも、丁寧な指示の方が意図を汲み取ってくれやすい(気がします!)。
ステップ2:AIが生成したGASコードをコピーする
指示を出すと、AIがGASのコードを生成してくれます。多くの場合、コードブロックで表示されるので、コピーボタンなどで簡単にコピーできます。
ステップ3:Googleスプレッドシートでスクリプトエディタを開く
メール送信の元データとなるGoogleスプレッドシートを開きます。 上部メニューの「拡張機能」から「Apps Script」を選択すると、新しいタブでスクリプトエディタが開きます。

ステップ4:GASコードを貼り付けて保存する
スクリプトエディタが開いたら、元々書かれている function myFunction() { ... }
のようなサンプルコードを全て削除し、ステップ2でコピーしたAI生成コードを貼り付けます。 その後、フロッピーディスクのアイコン(保存ボタン)をクリックして、プロジェクトに名前を付けて保存します(例:「サンキューメール自動送信」)。
ステップ5:コードの内容を少しだけ確認(できれば)
AIが生成したコードは便利ですが、万能ではありません。もし可能であれば、コードの最初の方にあるシート名や列番号が、あなたのスプレッドシートと一致しているかなどを軽く確認しましょう。 例えば、const sheetName = "顧客リスト";
の部分が指示通りか、const nameColumn = 1;
(A列が1番目) などが合っているか、などです。最初は難しく感じるかもしれませんが、慣れてくると少しずつ読めるようになります。
ステップ6:実行してテスト下書き作成する
保存後、スクリプトエディタの上部にある「実行」ボタン(再生ボタンのようなアイコン)を押します。 初めて実行する際は、「承認が必要です」というダイアログが表示されます。内容を確認し、「権限を確認」→自分のGoogleアカウントを選択→「詳細」→「(安全ではないページに移動)」→「許可」と進んでください。これは、作成したスクリプトにあなたのスプレッドシートやGmailへのアクセスを許可するための手続きです。
承認が終わると、スクリプトが実行されます。スプレッドシートのD列に「下書き作成済み」と表示され、実際にGmailの下書きフォルダにメールが作成されていれば成功です!その後、下書きの内容を確認して手動で送信します。
ステップ7:トリガーを設定して自動実行(お好みで)
毎回手動で実行するのが面倒な場合は、「トリガー」を設定することで、毎日決まった時間に自動実行したり、スプレッドシートが編集されたタイミングで自動実行したりすることも可能です。 スクリプトエディタの左側にある時計のアイコン(トリガー)から設定できます。
住民税通知の電子化に、AI×GASメール下書き自動作成をどう活かす?
さて、このメール下書き自動作成の仕組みを、令和6年度から始まった住民税特別徴収税額通知の電子データ配布に活用してみましょう。
eLTAX(エルタックス:地方税ポータルシステム)を通じて電子データで受け取った税額通知を、従業員一人ひとりにメールで送ることを想定します。まずは下書きを作成し、内容を確認してから送信することで、誤送信のリスクを低減できます。
準備するもの
- 従業員名簿とメールアドレスが記載されたスプレッドシート
- eLTAXからダウンロードした従業員ごとの税額通知PDFデータ(ファイル名は従業員ごとに分かりやすくしておく)
- Googleドライブ(通知PDFをアップロードしておく場所)
手順のイメージ
- スプレッドシートの準備
- A列:従業員氏名
- B列:メールアドレス
- C列:Googleドライブにアップロードした、その従業員専用の税額通知PDFのファイルID
- D列:パスワード(PDFにパスワードを設定する場合。後述)
- AIへの指示(GASコード生成依頼): ステップ1と同様に、AIに指示を出します。今度は、Googleドライブ上のファイルを添付してメールの下書きを作成するように依頼します。
【AIへの指示文 例(Googleドライブのファイルを添付した下書きを作成する場合)】
Googleスプレッドシートのシート名「住民税通知送付リスト」から情報を読み取り、各従業員に令和7年度の個人住民税特別徴収税額通知のPDFファイル(C列のGoogleドライブファイルIDで指定)を**添付したメールの下書きをGmailに作成する**Google Apps Scriptを作成してください。
・A列:従業員氏名
・B列:メールアドレス
・C列:税額通知PDFのGoogleドライブファイルID
メール件名:「令和7年度 個人住民税額決定通知書送付のお知らせ」
メール本文:
「[A列の氏名] 様
お疲れ様です。株式会社〇〇です。
令和7年度の個人住民税額決定通知書を添付ファイルにてお送りします。
ご確認ください。
※ファイルを開くにはパスワードが必要です。パスワードは別途お知らせします。(または、D列のパスワードを本文に記載する指示も可能ですが、セキュリティには十分注意してください)
ご確認よろしくお願いいたします。
株式会社〇〇(あなたの会社名)
人事部」
・メールアドレスが空欄の行は処理しない。
・**下書き作成後**、E列に「**下書き作成完了**」と記録する。
- Googleドライブの共有設定: 従業員ごとの税額通知PDFをGoogleドライブにアップロードします。**GASでファイルを添付する場合、ファイル自体の共有設定は「制限付き」のままでも、スクリプト実行者がそのファイルへのアクセス権を持っていれば添付可能です。**ただし、従業員がファイルIDから直接ファイルにアクセスすることは意図しないため、リンク共有はオフにしておくのが安全です。
- セキュリティ対策:通知PDFのパスワード取り扱い(重要):住民税の通知(特にeLTAXから提供される電子データ)は重要な個人情報を含んでおり、通常、提供元(eLTAXなど)によって既にパスワードが設定されています。このパスワード(「保護コード」や「パスワード」などと呼ばれるもの)は、ファイルとは別に提供されるか、ダウンロード時に確認できる場合があります。
企業側の対応としては、この既存のパスワードを従業員に安全に伝えることが重要になります。メール本文にパスワードを直接記載するのはセキュリティリスクが高いため、以下の方法を検討してください。
・別の手段で通知: 社内チャット、個別の安全なメッセージ、または口頭など、メールとは異なる経路でパスワードを伝えます。
・スプレッドシートの活用(注意点あり): スプレッドシートのD列などにパスワードを記録しておくことは可能ですが、そのスプレッドシート自体のアクセス管理を厳重に行う必要があります。AIへの指示で「D列のパスワードをメール本文に記載する」という指示も技術的には可能ですが、これは推奨されません。
※従業員がファイルを開くために必要なパスワードを、安全かつ確実に伝える方法を確立することが最も重要です。 - GASコードの実行と確認: AIが生成したコードをスクリプトエディタに貼り付け、保存・実行します。権限承認も忘れずに行いましょう。テスト実行で、意図した通りに従業員(のテストメールアドレス)宛のメール下書きが作成され、通知PDFが添付されているか確認します。問題なければ、各下書きを手動で送信します。
注意点:
- 個人情報の取り扱い: 従業員のメールアドレスや税額情報は重要な個人情報です。スプレッドシートのアクセス権限管理を徹底し、誤送信がないよう細心の注意を払いましょう。下書き作成のステップを挟むことで、送信前の確認が可能です。
- Googleドライブの容量: 大量のPDFを保存・共有する場合、Googleドライブの空き容量に注意が必要です。
- 従業員への事前説明: 電子データで配布すること、ファイル形式、パスワードについてなど、事前に従業員へ丁寧な説明と同意を得ることが大切です。
実際にやってみた!
- 準備
- 税額通知PDFのGoogleドライブファイルID
URLは通常 https://drive.google.com/file/d/【ここにファイルIDが表示されます】/view?usp=sharing のような形式です。
この 【ここにファイルIDが表示されます】 の部分がファイルIDです。 - シート名に『住民税通知送付リスト』と必ず入力してください
- 税額通知PDFのGoogleドライブファイルID


- GASコードを貼り付ける
/**
* Googleスプレッドシートの情報を基に、住民税通知のPDFを添付したメール下書きを作成する。
*/
function createResidentTaxNotificationDrafts() {
// スプレッドシートとシート名を指定
const sheetName = '住民税通知送付リスト';
const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
const sheet = spreadsheet.getSheetByName(sheetName);
if (!sheet) {
Browser.msgBox('エラー', `シート "${sheetName}" が見つかりません。`, Browser.Buttons.OK);
return;
}
// データを取得 (ヘッダー行を除く)
const startRow = 2; // データ開始行
const numRows = sheet.getLastRow() - startRow + 1;
if (numRows <= 0) {
Browser.msgBox('情報', '処理対象のデータがありません。', Browser.Buttons.OK);
return;
}
const dataRange = sheet.getRange(startRow, 1, numRows, 5); // A列からE列まで取得
const data = dataRange.getValues();
// メール件名と本文のテンプレート
const subject = '令和7年度 個人住民税額決定通知書送付のお知らせ';
const bodyTemplate = `[EMPLOYEE_NAME] 様
お疲れ様です。株式会社〇〇です。
令和7年度の個人住民税額決定通知書を添付ファイルにてお送りします。
ご確認ください。
※ファイルを開くにはパスワードが必要です。パスワードは別途お知らせします。
ご確認よろしくお願いいたします。
株式会社〇〇(あなたの会社名)
人事部`;
// 会社名を実際の会社名に変更してください
// 例: const companyName = "株式会社△△";
// const bodyTemplate = bodyTemplate.replace(/株式会社〇〇/g, companyName);
let draftsCreatedCount = 0;
for (let i = 0; i < data.length; i++) {
const row = data[i];
const employeeName = row[0]; // A列: 従業員氏名
const emailAddress = row[1]; // B列: メールアドレス
const fileId = row[2]; // C列: GoogleドライブファイルID
const statusCell = sheet.getRange(startRow + i, 5); // E列: ステータス記録セル
// メールアドレスが空欄の場合はスキップ
if (!emailAddress) {
continue;
}
// 既に処理済みの場合はスキップ (E列に「下書き作成完了」とある場合)
if (statusCell.getValue() === '下書き作成完了') {
continue;
}
// メール本文の[EMPLOYEE_NAME]を置換
const mailBody = bodyTemplate.replace('[EMPLOYEE_NAME]', employeeName);
try {
// Googleドライブからファイルを取得
const file = DriveApp.getFileById(fileId);
const attachment = file.getBlob();
// Gmailで下書きを作成
GmailApp.createDraft(emailAddress, subject, mailBody, {
attachments: [attachment],
htmlBody: mailBody.replace(/\n/g, '<br>') // HTMLメールとして改行を<br>に変換
});
// E列に「下書き作成完了」と記録
statusCell.setValue('下書き作成完了');
draftsCreatedCount++;
} catch (e) {
// エラーが発生した場合はE列にエラーメッセージを記録
statusCell.setValue(`エラー: ${e.message}`);
console.error(`エラー発生行: ${startRow + i}, 氏名: ${employeeName}, エラー: ${e.toString()}`);
}
}
if (draftsCreatedCount > 0) {
Browser.msgBox('完了', `${draftsCreatedCount}件のメール下書きを作成しました。`, Browser.Buttons.OK);
} else {
Browser.msgBox('情報', '作成対象のメール下書きはありませんでした。', Browser.Buttons.OK);
}
}
/**
* スクリプトエディタからこの関数を実行できるようにカスタムメニューを追加します。
*/
function onOpen() {
SpreadsheetApp.getUi()
.createMenu('カスタムメニュー')
.addItem('住民税通知メール下書き作成', 'createResidentTaxNotificationDrafts')
.addToUi();
}
- GASコードを自社の内容に修正
- 「株式会社〇〇」 の部分を実際の会社名に変更してください(スクリプト内のコメント
// 会社名を実際の会社名に変更してください
を参照)。
- 「株式会社〇〇」 の部分を実際の会社名に変更してください(スクリプト内のコメント
- 「実行」ボタンを押す
結果!!
きちんとメールの下書きを作成してくれました!
圧縮フォルダもきちんと添付されていました。

そして、スプシには「下書き作成完了」の文字が!

感動ですね!
読者の皆様へのお願いと注意点
このスクリプトは、Googleスプレッドシートの情報を基に、Gmailに添付ファイル付きのメール下書きを自動作成するものです。大変便利なものですが、ご利用にあたっては以下の点にご注意ください。
1. 自己責任でのご利用をお願いします
- このスクリプトの使用によって生じたいかなる損害についても、スクリプト提供者は責任を負いかねます。
- 必ずご自身の責任において、内容を理解した上でご利用ください。
2. 事前の十分なテストを推奨します
- 本番のデータで実行する前に、必ず少数のテストデータ(ご自身のメールアドレスなど)を使って動作確認を行ってください。
- 意図しないメール下書きが大量に作成されたり、情報が誤って記録されたりする可能性がないか確認しましょう。
3. Googleアカウントと権限の承認について
- スクリプトを実行するには、Googleアカウントが必要です。
- 初めてスクリプトを実行する際には、お使いのGoogleアカウントに対して、Googleスプレッドシート、Gmail、Googleドライブへのアクセス許可を求める画面が表示されます。
- 内容をよく確認し、信頼できるスクリプトであると判断した場合にのみ「許可」してください。
4. スプレッドシートの準備を正確に
- スクリプトは、特定のシート名(デフォルトでは「住民税通知送付リスト」)と列の並び(A列:氏名、B列:メールアドレス、C列:ファイルIDなど)を前提としています。
- ご自身のスプレッドシートが、スクリプトの想定する形式と一致しているかご確認ください。
- ヘッダー行は1行目、データは2行目から始まる想定です。
5. GoogleドライブのファイルIDと共有設定
- C列に記載するGoogleドライブの「ファイルID」は正確に入力してください。IDが間違っていると、ファイルを添付できずエラーになります。
- 添付するファイルは、スクリプトを実行するアカウントがアクセスできる状態(通常はご自身のマイドライブ内にあるファイル)である必要があります。
6. メールアドレスの確認
- B列のメールアドレスが正しいものであるか、十分に確認してください。(このスクリプトは下書き作成までですが、送信処理に改造した場合、誤送信のリスクがあります。)
7. スクリプト内のカスタマイズ箇所
- メール本文に含まれる会社名(例:「株式会社〇〇」)は、ご自身の組織名に必ず書き換えてください。
- メール件名や本文の他の部分も、必要に応じてご自身の状況に合わせて調整してください。
8. 処理件数とGoogleの制限
- 一度に大量のメール下書きを作成しようとすると、Google Apps Scriptの実行時間制限(通常6分程度)を超える場合があります。その場合は、処理する行を分けるなどの工夫が必要になることがあります。
- Gmailには1日のメール送信数やAPI利用に関する制限があります。下書き作成は送信ほど厳しくありませんが、極端に大量の処理を行う場合はご注意ください。
9. エラー発生時の対応
- スクリプト実行中に問題が発生した場合、スプレッドシートのE列にエラーメッセージが記録されることがあります。
- より詳細なエラー情報は、スクリプトエディタの「実行ログ」(過去の実行一覧から該当の実行を選択)で確認できます。
10. 個人情報の取り扱いについて - このスクリプトは、氏名、メールアドレス、税務情報といった機微な個人情報を取り扱います。 - スプレッドシートのアクセス権限管理(共有設定)には十分注意し、不正アクセスや情報漏洩がないよう、慎重に取り扱ってください。
11. スクリプトの更新とGoogleサービスの仕様変更 - Google Apps Scriptや関連するGoogleサービス(Gmail、Drive、Spreadsheet)の仕様は、将来変更される可能性があります。 - 仕様変更により、このスクリプトが期待通りに動作しなくなる場合があることをご了承ください。
AIとGAS活用の際の注意点と、さらなる可能性
AIとGASは非常に強力なツールですが、利用にあたっていくつか注意点があります。
- AI生成コードは完璧ではない: AIはあくまでサポートです。生成されたコードが期待通りに動かないことや、エラーが含まれていることもあります。最初は簡単な処理から試し、少しずつ慣れていくのが良いでしょう。
- セキュリティ意識を常に持つ: 特に個人情報や機密情報を扱う場合は、Googleアカウントのセキュリティ設定(2段階認証など)を強化し、スプレッドシートやスクリプトの共有設定にも注意しましょう。
- エラー発生時の対応: 自動化システムも、時にはエラーで停止することがあります。エラーログを確認したり、AIにエラーメッセージを見せて修正方法を尋ねたりする対応が必要になることもあります。
- Googleの利用規約の範囲内で: GASの利用はGoogleの利用規約に従う必要があります。例えば、短時間に大量のメールを作成・送信すると制限がかかる場合があります。
これらの点に注意しつつ、まずは小さな業務改善からAIとGASを活用してみてはいかがでしょうか。一度成功体験を積むと、「あの作業も自動化できるかも?」と、次々とアイデアが湧いてくるはずです。
例えば、
- ウェブサイトの問い合わせフォームからの情報をスプレッドシートに自動転記し、担当者に通知メールの下書きを作成する。
- 毎月の売上データを集計し、簡単なレポートメールの下書きを自動作成する。
- アンケートの回答を自動集計し、お礼メールの下書きを作成する。
など、応用範囲は無限大です。
【まとめ】小さな自動化から、大きな変化へ
今回は、AIを活用してGASコードを生成し、メール業務を自動化する方法、そしてそれを住民税通知の電子化対応に応用するアイデアをご紹介しました。特に、いきなり送信するのではなく、一旦下書きとして保存することで、確認のステップを挟み、より安全に業務を進める方法を強調しました。
「なんだか自分にもできそう!」と思っていただけたでしょうか?
最初は戸惑うこともあるかもしれませんが、この記事で紹介したステップに沿って、まずは簡単なメール下書き作成の自動化から試してみてください。一度その便利さを体験すれば、きっとあなたのビジネスに欠かせないツールになるはずです。
もちろん、どうしても難しいと感じる部分や、もっと複雑な自動化(例えば、承認フローを経て自動送信するなど)に挑戦したい場合は、専門家に相談するのも一つの手です。
令和6年度から始まった住民税通知電子化は、業務を見直す良い機会でした。そして令和7年現在も、この動きに対応し業務効率化を進めることは引き続き重要です。AIやGASといった新しい技術を賢く取り入れ、日々のノンコア業務から解放され、より本質的な業務に集中できる環境を整えていきましょう。その小さな一歩が、あなたのビジネスを大きく飛躍させるきっかけになるかもしれません。