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内の情報を効率的に取得し、経費精算業務を大幅に効率化できます。本記事で紹介したコード例を参考に、ぜひご自身の業務に合わせてカスタマイズし、経費精算の自動化を実現してください。
未経験からSNSデザインを学び、在宅ワークで収入を得たい方へ。
Flap DESIGNは、デザインスキルから案件獲得までを徹底サポートするオンラインスクールです。現役プロがマンツーマンで指導するため、挫折しにくい環境が強み。
さらに、受講期間中に案件を獲得できなかった場合は、売上が立つまで営業サポート期間を延長する「売上保証制度」も魅力です。
副業として月8〜20万円を目指したい会社員の方、出産・育児を機に新しい働き方を求める方、フリーランスとして独立を目指す方など、ライフスタイルに合わせた働き方を実現したい方にぴったりのサービスです。まずは無料相談で詳細を聞いてみませんか?
未経験から始める!SNSデザインスクール