DriveApp.getFileByIdで経費精算を効率化:GASで始める財務自動化

DriveApp.getFileByIdで経費精算を効率化:GASで始める財務自動化

経費精算は、企業にとって避けて通れない業務ですが、手作業が多く、時間と手間がかかるのが難点です。特に、領収書や申請書の管理、承認プロセスの追跡などは、担当者の負担を増大させます。そこで、Google Apps Script(GAS)とDriveApp.getFileByIdを活用することで、これらの課題を解決し、経費精算プロセスを大幅に効率化できます。

DriveApp.getFileByIdとは

DriveApp.getFileById(id)は、Google Drive上のファイルをIDで指定して取得するGASの関数です。この関数を使うことで、ファイル名やフォルダ構造に関わらず、特定のファイルを確実に操作できます。経費精算においては、領収書や申請書などのファイルをIDで管理することで、検索や処理を自動化できます。

DriveApp.getFileByIdの基本的な使い方

DriveApp.getFileById関数は、引数としてファイルのIDを受け取り、Fileオブジェクトを返します。ファイルIDは、Google Drive上でファイルを開いた際のURLに含まれています。例えば、URLがhttps://drive.google.com/file/d/1234567890abcdefghijklmn/viewの場合、ファイルIDは1234567890abcdefghijklmnです。

function getFileByIdExample() {
const fileId = '1234567890abcdefghijklmn';
const file = DriveApp.getFileById(fileId);
Logger.log(file.getName());
}

経費精算におけるDriveApp.getFileByIdの実装方法

経費精算業務において、DriveApp.getFileByIdは様々な場面で活用できます。以下に、具体的な実装例をいくつか紹介します。

1. 領収書の自動収集と整理

社員がスマートフォンなどで撮影した領収書画像をGoogle Driveにアップロードする際、ファイル名を特定のルール(例:社員ID_日付_金額.jpg)に基づいて命名することで、ファイルIDと社員情報を紐付けます。GASを使って、これらのファイルを自動的に特定のフォルダに整理し、経費精算システムへの連携を容易にします。

function organizeReceipts() {
const folderId = '経費フォルダのID';
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet = ss.getSheetByName('領収書リスト');
const lastRow = sheet.getLastRow();

// 領収書リストからファイルIDを取得し、フォルダに移動
for (let i = 2; i <= lastRow; i++) {
const fileId = sheet.getRange(i, 1).getValue(); // A列にファイルIDがあるとする
try {
const file = DriveApp.getFileById(fileId);
const folder = DriveApp.getFolderById(folderId);
folder.addFile(file);
Logger.log('ファイルを移動しました: ' + file.getName());
} catch (e) {
Logger.log('ファイルが見つかりません: ' + fileId);
}
}
}

2. 経費申請書の自動処理

社員がGoogleフォームで経費申請を行う際、フォームの回答として領収書のファイルIDを収集します。GASを使って、これらのファイルIDからDriveApp.getFileByIdでファイルを取得し、申請内容と合わせてスプレッドシートに記録します。これにより、経費申請書の処理状況を一覧で確認できます。

function processExpenseForm(e) {
const fileId = e.response.getItemResponses()[0].getResponse(); // フォームの最初の質問がファイルIDとする
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet = ss.getSheetByName('経費申請');

try {
const file = DriveApp.getFileById(fileId);
const fileName = file.getName();
const fileSize = file.getSize();

// スプレッドシートに記録
sheet.appendRow([fileName, fileSize, fileId]);
Logger.log('申請を記録しました: ' + fileName);
} catch (e) {
Logger.log('ファイルが見つかりません: ' + fileId);
}
}

3. 請求書作成の自動化

請求書テンプレートをGoogleドキュメントで作成し、DriveApp.getFileByIdでテンプレートファイルを指定します。GASを使って、顧客情報や請求金額などのデータをスプレッドシートから取得し、テンプレートに差し込んで請求書を自動生成します。生成された請求書は、PDF形式でGoogle Driveに保存し、顧客にメールで送信することも可能です。

function generateInvoice(fileId, customerName, amount) {
try {
const templateFile = DriveApp.getFileById(fileId);
const templateDoc = DocumentApp.openById(templateFile.getId());
const body = templateDoc.getBody();

// テンプレートのプレースホルダーを置換
body.replaceText('{{顧客名}}', customerName);
body.replaceText('{{請求金額}}', amount);

// PDFとして保存
const pdfBlob = templateDoc.getAs('application/pdf');
const newFile = DriveApp.createFile(pdfBlob).setName(customerName + '_請求書.pdf');
Logger.log('請求書を作成しました: ' + newFile.getName());
} catch (e) {
Logger.log('テンプレートファイルが見つかりません: ' + fileId);
}
}

経費精算でよくある問題とトラブルシューティング

  • ファイルIDが間違っている: DriveApp.getFileByIdは、ファイルIDが正確でないとエラーが発生します。ファイルIDをコピーする際は、間違いがないか確認しましょう。
  • ファイルが見つからない: ファイルが削除されたり、アクセス権がない場合もエラーが発生します。ファイルの存在とアクセス権を確認してください。
  • GASの実行権限がない: GASを実行するユーザーに、Google Driveへのアクセス権が付与されているか確認してください。

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

  • エラー処理の強化: try-catch文を使って、ファイルが見つからない場合のエラー処理を実装しましょう。エラー発生時に、エラーログを出力したり、担当者に通知を送るようにすると、問題の早期発見につながります。
  • 承認ワークフローの組み込み: 経費申請の承認状況をスプレッドシートで管理し、GASを使って承認者にメールで通知を送るワークフローを構築できます。
  • 外部システムとの連携: GASとGoogle Cloud Functionsを組み合わせることで、経費精算システムなどの外部システムとの連携も可能です。

まとめ

DriveApp.getFileByIdは、GASを使った財務自動化において非常に強力なツールです。経費精算業務に導入することで、領収書の管理、申請書の処理、請求書作成などを効率化し、担当者の負担を軽減できます。ぜひ、この記事で紹介したコード例を参考に、自社の経費精算プロセスを自動化してみてください。

PR

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

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