2016年1月1日より、Kirabaの事務所を下記の通り移転…
確定申告の時期になると、メールで受信した領収書や請求書を一件一件ダウンロードするのが面倒です。
そこで今回は、Gmailに届く特定のメールから添付ファイルを爆速でGoogle Driveに保存する方法をご紹介します。
この方法を使えば、必要な書類をまとめてダウンロードできるため、確定申告に必要な領収書などの収集作業が大幅に効率化されます。また、添付ファイルであればなんでも収集できるので、その他の業務にも応用できます。
※スクリプトの使用は自己責任でお願いします。
Google Driveで保存先のフォルダを作成し、フォルダIDを取得する
まず、Google Drive を開き、添付ファイルを保存したいフォルダを作成します。
作成したフォルダを開き、URLの最後にあるフォルダID(https://drive.google.com/drive/folders/XXXXXXXXXX
のXXXXXXXXXX
の部分)をコピーしておきます。
Google スプレッドシートから Apps Scriptを開く
次にGoogle スプレッドシートを作成します。
拡張機能
→ Apps Script
を選択します。
メールを検索し、添付ファイルを保存するスクリプトを記述する
以下のスクリプトをコピーし Apps Script のスクリプトエディタに貼り付けます。
// 指定期間の開始日
var TERM_AFTER = '2024/01/01';
// 指定期間の終了日
var TERM_BEFORE = '2025/01/01';
// 検索するメールのタイトル
var TERM_SEARCH_SUBJECT = 'ドメイン料金 ご請求書発行通知';
// Google DriveフォルダのID(手順1でコピーしたIDをここに貼り付ける)
var IV_FOLDER_ID = 'xxxxx';
// Gmailの検索クエリ: 件名に特定の文字列が含まれ、指定期間内のメールを対象とする
var IV_SEARCH_TERM = 'subject:('+ TERM_SEARCH_SUBJECT +')' + ' ' + 'after:' + TERM_AFTER + ' ' + 'before:' + TERM_BEFORE;
// メールの添付ファイルを取得し、Google Driveに保存する関数
function fetchFile() {
var onFolder = DriveApp.getFolderById(IV_FOLDER_ID);
var onThreads = GmailApp.search(IV_SEARCH_TERM, 0, 30);
var onMessages = GmailApp.getMessagesForThreads(onThreads);
for (var i in onMessages) {
for (var j in onMessages[i]) {
var onattachments = onMessages[i][j].getAttachments();
for (var k in onattachments) {
onFolder.createFile(onattachments[k]);
}
}
}
}
スクリプトをカスタマイズする
添付ファイルを保存したいメールを絞り込むため、スクリプトの各変数の値を変更しカスタマイズしていきます。
検索対象のメールの期間を長く設定すると大量のデータがGoogle Driveに保存される可能性があるので、注意してください。
- TERM_AFTER
検索したいメールの開始日。指定した日付以降に受信したメールを対象にします。 - TERM_BEFORE
検索したいメールの終了日。指定した日付よりも前に受信したメールを対象にします。 ※指定した日付は含まれません。 - TERM_SERCH _SUBJECT
検索したいメールのタイトル。領収書や請求書が添付されているメールが抽出できように設定しましょう。Gmailの検索で事前に検索して確認するとわかりやすいです。 - IV_FOLDER_ID
コピーしておいた保存先のフォルダのIDを記述します。
保存
ボタンを選択すると保存できます。
プロジェクト名
は適当に設定して問題ないです。
スクリプトを実行する
実行
ボタンをクリックするとスクリプトが実行されます。複数回実行すると大量のファイルが保存されてしまう可能性があるので注意してください。
初回実行時に Google認証
を求められるので、指示に従って認証を許可します。
アカウントを選択します。
スクリプトがGmailとGoogle Driveへのアクセスを求めてるのでチェックして続行します。
スクリプトが実行され、Gmailの添付ファイルがGoogle Driveに保存されます。スクリプトの実行が完了すると実行ログに「実行完了」と表示されます。
保存先に指定したフォルダを確認するとデータが保存されていることが確認できます。
まとめ
以上の手順で、Gmailの添付ファイルを自動でGoogle Driveに保存する方法を解説しました。この方法を活用すれば、確定申告の領収書や請求書の整理がスムーズになるだけでなく、他の業務にも応用できます。また、新規でスプレッドシートを作成し、それぞれスクリプトをカスタマイズすることで様々な条件のメールの添付ファイルを収集できます。
スクリプトを実行する際は、対象のメールや保存先のフォルダをしっかり確認し、誤って不要なデータを大量に保存しないよう注意してください。