Gmailのスター付きメールを活用!GASで経費精算を自動化する財務効率化術

Gmailのスター付きメールを活用!GASで経費精算を自動化する財務効率化術

Gmailのスター付きメールをGAS(Google Apps Script)で処理し、経費精算を自動化する方法を解説します。本記事では、GmailMessage.isStarred関数を利用して、特定の条件を満たすメール(例えば、領収書メールなど)にスターを付け、そのスター付きメールをGASで自動的に処理することで、経費精算業務を効率化するテクニックを紹介します。

GmailMessage.isStarred関数の基本

GmailMessage.isStarred()は、Gmailのメッセージにスターが付いているかどうかを判定するGASの関数です。この関数を利用することで、特定の条件を満たすメールを抽出し、自動処理を行うことができます。

関数の概要

GmailMessage.isStarred()は、GmailMessageオブジェクトに対して使用します。戻り値はboolean型で、スターが付いている場合はtrue、付いていない場合はfalseを返します。

function checkStarredStatus(message) {
const isStarred = message.isStarred();
Logger.log(isStarred); // スターの有無をログに出力
return isStarred;
}

経費精算自動化の実装方法

経費精算を自動化するために、以下のステップでGASを実装します。

  1. 特定の条件(件名、送信者など)に合致するメールを検索
  2. 合致するメールにスターを付ける
  3. スター付きメールを定期的にチェックし、経費情報を抽出
  4. 抽出した経費情報をスプレッドシートに自動入力

実装例1:領収書メールに自動でスターを付ける

特定のキーワード(例:領収書、請求書)を含むメールに自動的にスターを付けるGASのコード例です。

function autoStarReceipts() {
const threads = GmailApp.search('subject:領収書 OR subject:請求書');
for (const thread of threads) {
const messages = thread.getMessages();
for (const message of messages) {
if (!message.isStarred()) {
message.star();
Logger.log('スターを付けました: ' + message.getSubject());
}
}
}
}

実装例2:スター付きメールから経費情報を抽出してスプレッドシートに記録する

スター付きメールから必要な情報(日付、金額、摘要)を抽出し、スプレッドシートに自動で記録するコード例です。この例では、メールの本文から正規表現を使って金額を抽出しています。

function recordExpensesFromStarredEmails() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet = ss.getSheetByName('経費記録');
const threads = GmailApp.search('is:starred');

for (const thread of threads) {
const messages = thread.getMessages();
for (const message of messages) {
if (message.isStarred()) {
const date = message.getDate();
const body = message.getPlainBody();
const amountRegex = /金額:.*?([0-9,]+)円/;
const amountMatch = body.match(amountRegex);
const amount = amountMatch ? amountMatch[1].replace(/,/g, '') : '金額不明';
const subject = message.getSubject();

// スプレッドシートに記録
sheet.appendRow([date, subject, amount]);

// スターを外す (処理済みにする)
message.unstar();
}
}
}
}

実装例3:特定の送信者からのメールを対象にする

特定の送信者(例:クレジットカード会社)からのメールに限定して処理を行う例です。

function processCreditCardStatements() {
const sender = 'creditcard@example.com'; // クレジットカード会社のメールアドレス
const threads = GmailApp.search('from:' + sender + ' is:starred');

for (const thread of threads) {
const messages = thread.getMessages();
for (const message of messages) {
if (message.isStarred() && message.getFrom() === sender) {
// 処理内容(例:金額を抽出してスプレッドシートに記録)
Logger.log('処理対象メール: ' + message.getSubject());
message.unstar(); // 処理済みにする
}
}
}
}

よくある問題とトラブルシューティング

  • スターが付かない: 検索条件が正しいか確認してください。また、GASの実行権限が付与されているか確認してください。
  • 情報が正しく抽出されない: 正規表現がメールのフォーマットと一致しているか確認してください。
  • スプレッドシートへの書き込みエラー: スプレッドシートIDとシート名が正しいか確認してください。また、GASにスプレッドシートへの書き込み権限が付与されているか確認してください。

カスタマイズ方法と応用例

  • 定期実行: GASのトリガーを設定し、定期的にスクリプトを実行することで、完全自動化を実現できます。
  • エラー通知: エラーが発生した場合に、メールで通知するように設定できます。
  • 他のサービスとの連携: Google DriveやSlackなどの他のサービスと連携することで、さらに高度な自動化が可能です。

まとめ

Gmailのスター付きメールとGASを組み合わせることで、経費精算業務を大幅に効率化できます。ぜひ本記事で紹介したコード例を参考に、自社の業務に合わせたカスタマイズを試してみてください。

PR

CodeCampは、現役エンジニアからマンツーマンで学べるオンラインプログラミングスクールです。WebデザインやWebサービス開発、転職支援など、目的に合わせた多様なコースが選べます。
朝7時〜夜23時40分まで、365日レッスンが受けられるため、忙しい方でも自分のペースで学習を進めることが可能です。通過率8%の厳しい選考を通過した質の高い講師陣が、あなたのキャリアチェンジを強力にサポートします。
さらに、未経験者向けのカリキュラムや、学習開始から20日以内の全額返金保証制度もあるため、プログラミング学習に不安を感じている方でも安心して始めることができます。

CodeCampで理想の働き方を実現しよう