DriveApp.getFolderByIdで実現!Google Driveを活用した経費精算の効率化

DriveApp.getFolderByIdで実現!Google Driveを活用した経費精算の効率化

経費精算は、企業にとって避けて通れない業務ですが、手作業が多く、時間と手間がかかるのが現状です。特に、領収書の整理や申請書の作成、承認作業などは、担当者にとって大きな負担となります。本記事では、Google Apps Script(GAS)のDriveApp.getFolderById関数を活用して、Google Drive内の特定のフォルダから経費関連の情報を効率的に収集し、経費精算業務を大幅に効率化する方法をご紹介します。

DriveApp.getFolderByIdとは?

DriveApp.getFolderById(id)は、Google Apps ScriptのDriveAppクラスに属する関数の一つです。この関数は、指定されたIDを持つGoogle Drive内のフォルダを取得するために使用されます。取得したフォルダオブジェクトを通じて、フォルダ内のファイルやサブフォルダへのアクセス、フォルダのプロパティの変更などが可能になります。

関数の基本的な使い方

DriveApp.getFolderById関数の基本的な使い方は以下の通りです。

function getFolderByIdExample() {
// フォルダIDを指定
const folderId = "your_folder_id";

// IDに基づいてフォルダを取得
const folder = DriveApp.getFolderById(folderId);

// フォルダ名を出力
Logger.log(folder.getName());
}

上記のコードでは、your_folder_idの部分を実際に取得したいフォルダのIDに置き換える必要があります。フォルダIDは、Google Drive上でフォルダを開いた際のURLに含まれています。(例:https://drive.google.com/drive/folders/your_folder_id

経費精算業務への応用

経費精算業務において、DriveApp.getFolderById関数は、領収書や申請書が保存された特定のフォルダにアクセスし、必要な情報を抽出するために使用できます。例えば、従業員ごとにフォルダを作成し、そこに領収書の画像ファイルや経費申請書のスプレッドシートを保存するようにすれば、GASを使ってこれらの情報を一括で取得し、経費精算処理を自動化することが可能です。

実装例1:指定フォルダ内の領収書ファイル名を取得する

指定されたフォルダ内の領収書ファイルの名前をすべて取得するGASのコード例です。

function getReceiptFileNames() {
// 領収書が保存されているフォルダのID
const folderId = "your_receipt_folder_id";

// フォルダを取得
const folder = DriveApp.getFolderById(folderId);

// フォルダ内のファイルを取得
const files = folder.getFiles();

// ファイル名を格納する配列
const fileNames = [];

// ファイルを順番に処理
while (files.hasNext()) {
const file = files.next();
fileNames.push(file.getName());
}

// ファイル名をログに出力
Logger.log(fileNames);
}

実装例2:フォルダ内の特定期間のファイルを抽出する

特定の期間内にアップロードされたファイルを抽出するGASのコード例です。経費精算の対象期間を絞り込む際に役立ちます。

function getFilesByDateRange() {
// フォルダID
const folderId = "your_folder_id";
// 開始日と終了日(YYYY-MM-DD形式)
const startDate = new Date("2023-01-01");
const endDate = new Date("2023-01-31");

const folder = DriveApp.getFolderById(folderId);
const files = folder.getFiles();

while (files.hasNext()) {
const file = files.next();
const fileDate = file.getDateCreated();

// ファイルの作成日が指定期間内にあるか確認
if (fileDate >= startDate && fileDate <= endDate) {
Logger.log(file.getName() + " - " + fileDate);
}
}
}

実装例3:経費申請スプレッドシートから情報を読み取る

Google Drive内の経費申請スプレッドシートから必要な情報を読み取り、集計するGASのコード例です。SpreadsheetAppと組み合わせることで、より高度な処理が可能になります。

function readExpenseDataFromSpreadsheet() {
// フォルダID
const folderId = "your_expense_folder_id";

const folder = DriveApp.getFolderById(folderId);
const files = folder.getFilesByType(MimeType.GOOGLE_SHEETS);

while (files.hasNext()) {
const file = files.next();
const spreadsheet = SpreadsheetApp.openById(file.getId());
const sheet = spreadsheet.getActiveSheet();
const data = sheet.getDataRange().getValues();

// データの最初の行(ヘッダー)をスキップ
for (let i = 1; i < data.length; i++) {
const row = data[i];
// 各列のデータを処理(例:日付、金額、摘要)
const date = row[0];
const amount = row[1];
const description = row[2];

Logger.log("日付: " + date + ", 金額: " + amount + ", 摘要: " + description);
}
}
}

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

  • フォルダIDが間違っている: フォルダIDが正しいか確認してください。URLからコピーする際に、不要な文字が含まれていないか注意が必要です。
  • 権限の問題: GASスクリプトがGoogle Driveへのアクセス権を持っているか確認してください。スクリプト実行時に権限の許可を求められる場合があります。
  • ファイルが見つからない: 指定したフォルダにファイルが存在するか、ファイル名が正しいか確認してください。

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

  • エラーハンドリングの追加: ファイルが見つからない場合や、データの形式が異なる場合のエラー処理を追加することで、より堅牢なスクリプトを作成できます。
  • トリガー設定: 特定のフォルダに新しいファイルがアップロードされた際に自動的にスクリプトが実行されるように、トリガーを設定することができます。
  • スプレッドシートへの自動書き込み: 抽出したデータをGoogle スプレッドシートに自動的に書き込むことで、経費精算の集計作業を効率化できます。

まとめ

DriveApp.getFolderById関数を活用することで、Google Drive内の情報を効率的に取得し、経費精算業務を大幅に効率化できます。本記事で紹介したコード例を参考に、ぜひご自身の業務に合わせてカスタマイズし、経費精算の自動化を実現してください。

PR

未経験からSNSデザインを学び、在宅ワークで収入を得たい方へ。
Flap DESIGNは、デザインスキルから案件獲得までを徹底サポートするオンラインスクールです。現役プロがマンツーマンで指導するため、挫折しにくい環境が強み。
さらに、受講期間中に案件を獲得できなかった場合は、売上が立つまで営業サポート期間を延長する「売上保証制度」も魅力です。
副業として月8〜20万円を目指したい会社員の方、出産・育児を機に新しい働き方を求める方、フリーランスとして独立を目指す方など、ライフスタイルに合わせた働き方を実現したい方にぴったりのサービスです。まずは無料相談で詳細を聞いてみませんか?

未経験から始める!SNSデザインスクール