GAS Folder.removeFileで経費精算ファイルを安全に削除:財務担当者向け実践ガイド
経費精算業務において、承認済みの精算ファイルや不要になったファイルを安全に削除することは、ファイル管理とセキュリティの観点から非常に重要です。Google Apps Script(GAS)のFolder.removeFileメソッドを利用することで、これらのファイルを効率的に、そして安全に削除できます。本記事では、財務・会計担当者向けに、Folder.removeFileの具体的な利用方法と、経費精算業務における実践的なコード例を交えて解説します。
Folder.removeFileの基本
Folder.removeFile(file)は、指定されたファイルをフォルダから削除するGASのメソッドです。このメソッドを使うことで、不要になったファイルを完全に削除し、ストレージ容量の節約や、誤操作によるファイル改ざんのリスクを減らすことができます。
構文
folder.removeFile(file)
folder: ファイルを削除する対象のフォルダオブジェクト。file: 削除するファイルオブジェクト。
経費精算業務での実装
経費精算システムにおいて、承認済みの精算書PDFや、処理が完了したスプレッドシートを削除する際に、Folder.removeFileは非常に役立ちます。以下に、具体的な実装例をいくつか紹介します。
1. 承認済み経費精算書の自動削除
承認ステータスが「承認済み」になった経費精算書を、指定のフォルダから自動的に削除するスクリプトです。
function deleteApprovedExpenseReports() {
// フォルダIDを設定
const folderId = "YOUR_FOLDER_ID";
const folder = DriveApp.getFolderById(folderId);
// スプレッドシートIDを設定
const ssId = "YOUR_SPREADSHEET_ID";
const ss = SpreadsheetApp.openById(ssId);
const sheet = ss.getSheetByName("経費精算一覧");
// データの最終行を取得
const lastRow = sheet.getLastRow();
// 承認ステータスとファイル名を格納する配列
const statuses = sheet.getRange("F2:F" + lastRow).getValues(); // F列に承認ステータスがあるとする
const fileNames = sheet.getRange("B2:B" + lastRow).getValues(); // B列にファイル名があるとする
// 承認済みのファイルを削除
for (let i = 0; i < statuses.length; i++) {
if (statuses[i][0] === "承認済み") {
// ファイルを検索
const files = folder.getFilesByName(fileNames[i][0]);
// ファイルが存在する場合、削除
while (files.hasNext()) {
const file = files.next();
folder.removeFile(file);
Logger.log(file.getName() + " を削除しました");
}
//スプレッドシートのステータスを更新(削除済みに変更など)
sheet.getRange("F" + (i + 2)).setValue("削除済み");
}
}
}
カスタマイズ:YOUR_FOLDER_IDとYOUR_SPREADSHEET_IDは、実際のフォルダIDとスプレッドシートIDに置き換えてください。また、承認ステータスとファイル名が記載されている列も、必要に応じて修正してください。
2. 特定期間経過後の請求書PDFの削除
一定期間(例えば1年)が経過した請求書PDFを、自動的に削除するスクリプトです。
function deleteOldInvoices() {
// フォルダIDを設定
const folderId = "YOUR_FOLDER_ID";
const folder = DriveApp.getFolderById(folderId);
// 削除対象期間を設定(ミリ秒)
const expirationTime = 365 * 24 * 60 * 60 * 1000; // 1年
const now = new Date().getTime();
// フォルダ内のファイルを検索
const files = folder.getFiles();
// ファイルを順に処理
while (files.hasNext()) {
const file = files.next();
const fileCreationTime = file.getDateCreated().getTime();
// 作成日が一定期間以上前の場合、削除
if (now - fileCreationTime > expirationTime) {
folder.removeFile(file);
Logger.log(file.getName() + " を削除しました");
}
}
}
カスタマイズ:YOUR_FOLDER_IDは、実際のフォルダIDに置き換えてください。expirationTimeの値を変更することで、削除対象期間を調整できます。
3. エラーログファイルの定期的な削除
システムのエラーログファイルを定期的に削除することで、ストレージを圧迫するのを防ぎます。
function deleteOldErrorLogs() {
// フォルダIDを設定
const folderId = "YOUR_FOLDER_ID";
const folder = DriveApp.getFolderById(folderId);
// 削除対象期間を設定(ミリ秒)
const expirationTime = 30 * 24 * 60 * 60 * 1000; // 30日
const now = new Date().getTime();
// フォルダ内のファイルを検索
const files = folder.getFiles();
// ファイルを順に処理
while (files.hasNext()) {
const file = files.next();
//ファイル名にErrorLogが含まれているか確認
if(file.getName().includes("ErrorLog")){
const fileCreationTime = file.getDateCreated().getTime();
// 作成日が一定期間以上前の場合、削除
if (now - fileCreationTime > expirationTime) {
folder.removeFile(file);
Logger.log(file.getName() + " を削除しました");
}
}
}
}
カスタマイズ:YOUR_FOLDER_IDは、実際のフォルダIDに置き換えてください。expirationTimeの値を変更することで、削除対象期間を調整できます。 file.getName().includes("ErrorLog")でファイル名による削除対象の絞り込みをしています。必要に応じてファイル名の条件を変更してください
よくある問題とトラブルシューティング
- ファイルが見つからないエラー:
getFilesByNameでファイルが見つからない場合、ファイル名が正確でない可能性があります。ファイル名の大文字・小文字、スペースなどを確認してください。 - 権限エラー: スクリプトを実行するユーザーが、フォルダに対するアクセス権を持っていない可能性があります。フォルダの共有設定を確認し、適切な権限を付与してください。
- スクリプトの実行時間制限: 大量のファイルを処理する場合、スクリプトの実行時間制限に達する可能性があります。トリガーを設定して、夜間など時間帯を分けて実行するなど、処理を分割することを検討してください。
カスタマイズ方法と応用例
- 削除履歴の記録: 削除したファイルの情報をスプレッドシートに記録することで、削除履歴を管理できます。
- 削除前のバックアップ: ファイルを削除する前に、別のフォルダにバックアップを作成することで、誤削除のリスクを軽減できます。
- 特定のファイル形式のみ削除:
file.getName().toLowerCase().endsWith(".pdf")のように、ファイル名の拡張子をチェックすることで、特定のファイル形式のみを削除できます。
まとめ
Folder.removeFileは、GASを活用した経費精算業務の効率化において、非常に強力なツールです。本記事で紹介したコード例やトラブルシューティングを参考に、ぜひFolder.removeFileを業務に取り入れ、ファイル管理の改善とセキュリティの向上を図ってください。

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