経理担当者には毎月たくさんの請求書が届きます。最近ではメールに添付されて届くことも多いでしょう。1件ずつダウンロードしていると時間と手間がかかり、経理担当者にとって大きな負担となります。
この記事では、Gmailに届いた請求書のPDFファイルをGoogleドライブ内のフォルダに一括アップロードする便利なツールを紹介します。請求書だけでなく領収書やその他のファイルにも対応可能です。Google Apps Scriptが設定されているGoogleスプレッドシートのテンプレートも配布しているため、ダウンロードしてすぐに使い始められます。
Gmailに添付された請求書ファイルを一括アップロードするGoogle Apps ScriptコードとGoogleスプレッドシートテンプレートを無料ダウンロード
まずはGoogle Apps ScriptコードとGoogleスプレッドシートテンプレートをダウンロードしましょう。ダウンロードしたテンプレートと照らしあわせながら項目について解説します。
このGoogle Apps Scriptコードでできること
①Gmailから情報を取得しスプレッドシートに自動入力
Gmailの特定のラベルが付与された、指定した日数以内のメールの情報を取得し、Googleスプレッドシートに自動入力します。
②添付ファイルのGoogleドライブへのアップロード
取得したメールのうち、ステータスが「未アップロード」の添付ファイルをGoogleドライブに保存します。
③メール受信月ごとにフォルダ分け
メール受信日をもとにファイルの保存先のフォルダ分けを自動的に行います。
このGoogle Apps Scriptコードでできないこと
①添付ファイルの内容解析や自動分類
添付ファイルの内容を解析してフォルダ分けする機能はありません。
②ファイルの名前変更やカスタム命名規則の適用
アップロード時にファイル名を自動的に変更する機能はありません。
③定期的な自動実行
手動でメニューから実行する仕様になっています。「毎日7時にメールを取得する」といった定期的な処理はできません。
④別アカウントのメール取得・アップロード
今回のコードは、Google Apps Scriptが適用されているGoogleアカウント内でのみ動作します。他のアカウントのGmailやドライブにはアクセスができません。
Gmailに添付された請求書ファイルを一括アップロードする流れ
Gmailに添付された請求書や領収書ファイルを一括アップロードする流れを以下の動画でご覧いただけます。
「メール処理」から新着メールを取り込み
実装したGoogle Apps ScriptコードによってGoogleスプレッドシートの上部に「メール処理」というメニューが追加されています。
マウスオーバーすると「新規メールを取り込む」という項目が表示されるのでクリック(実行)します。
取り込まれたメールの確認
クリックすると対象期間中のファイル添付されたメールの情報が自動入力されます。正しく抽出されているか確認してください。
「メール処理」からファイルをアップロードする
「メール処理」のメニューから「ファイルをアップロードする」をクリック(実行)します。
ファイルの確認
Googleドライブに添付ファイルが保存されます。URLがスプレッドシートに自動入力されるのでクリックして内容を確認します。
Gmailに添付された請求書ファイルを一括アップロードするための初期設定
Gmailのフィルタ設定
Gmailの「フィルタ設定」で請求書が添付されたメールに「請求書」というラベルが付与されるように設定します。
「請求書」というラベルの付いたメールの情報のみを取得するよう指定しています。ラベル名を変更する場合はGoogle Apps Scriptコードも変更します。(後述)
ファイルの保存先の選択・指定
添付ファイルを保存するフォルダは任意の場所に変更可能です。
出力先を任意のフォルダに変更するには、 以下のコードを変更します。
①useFolderをfalseからtrueに変更
var useFolder = false;
↓
var useFolder = true;
②folderIdを任意のフォルダのGoogleドライブのフォルダIDに変更
var DRIVE_FOLDER_ID = 'YOUR_DRIVE_FOLDER_ID'; // 指定フォルダのID
GoogleドライブのフォルダIDは、Googleドライブのフォルダを選択した際のURLのdrive.google.com/drive/folders/以降の部分で、以下の赤枠部分にあたります。
Gmailに添付された請求書ファイルを一括アップロードするGoogle Apps Scriptコードの解説
Gmailに添付された請求書ファイルを一括アップロードするGoogle Apps Scriptコードの一部を紹介します。カスタマイズしたい場合は以下を参考にしてください。
コードをすべてコピーしたい方はダウンロードするとご覧いただけます。
メニューの追加
以下のコードでGoogleスプレッドシートのメニューに追加しています。メニュー名を変更したい場合はこのコードを変更してください。
function onOpen() { var ui = SpreadsheetApp.getUi(); ui.createMenu('メール処理') .addItem('新着メールを取り込む', 'fetchEmailsToSheet') .addItem('ファイルをアップロードする', 'uploadFilesToDrive') .addToUi(); }
ラベル名の設定
以下のコードで取得するメールのラベルを指定しています。ラベル名を変更したい場合はこのコードを変更してください。
var labelName = '請求書';
期間の設定
以下のコードで対象のメールを取得する日数を指定しています。初期設定では30としています。3日ごとに取得する場合は「3」、1週間ごとに取得する場合は「7」と変更しましょう。
var DAYS_TO_CHECK = 30; // 期間指定
今回は「Gmailに添付された請求書ファイルを一括アップロードするGoogle Apps Scriptコード&Googleスプレッドシートテンプレート」を紹介しました。
このコードを使えば、Gmailから請求書を保存する作業が大幅に効率化できます。
更に効率的に経理業務を行いたい場合は My Assistant(マイアシスタント) が便利です。
「請求書を会計ソフトにアップロードして記帳してほしい」「請求書の振込予約まで対応してほしい」「会社ごとにフォルダ分けしてほしい」「ファイル名を変更してほしい」など一連の業務を行い、仕事を自動化します。
他にも見積書や請求書の作成・送付、売上や支出の記帳、データ入力など様々な業務を月額2.5万円〜で支援します。ぜひご相談ください。

さとゆずSATOYUZU
株式会社キャスターで、採用支援事業「CASTER BIZ 採用」のWebマーケティングと『Alternative Work』の運営を担当しています。私生活ではECサイトの運営など。週3日働き、他の日は好きなことをやっています。3歳の娘に翻弄される日々を送っています。
メールマガジン

仕事のヒントが見つかる情報をお届けしています。