GAS File.getName() でプロジェクト管理を効率化!進捗・タスク・リソース管理を自動化
プロジェクト管理において、ファイル名の管理は意外と重要な要素です。特にGoogle Apps Script (GAS) を利用した自動化においては、ファイル名を正しく取得し、それをプロジェクト管理に活用することで、大幅な効率化が期待できます。この記事では、GASのFile.getName()
関数を用いて、進捗管理、タスク管理、リソース管理といったプロジェクト管理を効率化する方法を解説します。
プロジェクト管理におけるファイル名管理の課題
プロジェクト管理では、ドキュメント、スプレッドシート、PDFなど、様々なファイルを扱います。これらのファイル名を適切に管理しないと、以下の問題が発生する可能性があります。
- ファイルを探すのに時間がかかる
- どのファイルが最新版か分からなくなる
- ファイル名がバラバラで管理しにくい
- ファイル名から内容を推測できない
これらの問題を解決するために、GASのFile.getName()
関数を活用します。
GAS File.getName() 関数の基本
File.getName()
関数は、Google Drive上のファイルのファイル名を取得するためのGAS関数です。この関数を使うことで、ファイル名をプログラム内で簡単に扱うことができます。
function getFileName(fileId) {
// fileIdはファイルIDを指定します。
const file = DriveApp.getFileById(fileId);
const fileName = file.getName();
return fileName;
}
利用シチュエーション別実装方法
進捗管理
進捗管理において、ファイル名を「[プロジェクト名]_[タスク名]_[日付]_[進捗状況].xlsx」のように命名規則を設けることで、ファイル名から進捗状況を把握できます。GASでファイル名を取得し、スプレッドシートに一覧表示することで、進捗状況を可視化できます。
function updateProgressSheet() {
const folderId = "YOUR_FOLDER_ID"; // プロジェクトフォルダのID
const ssId = "YOUR_SPREADSHEET_ID"; // スプレッドシートのID
const folder = DriveApp.getFolderById(folderId);
const files = folder.getFiles();
const ss = SpreadsheetApp.openById(ssId);
const sheet = ss.getSheetByName("進捗状況");
sheet.clearContents(); // 既存データをクリア
sheet.appendRow(["ファイル名", "進捗状況"]); // ヘッダー行を追加
while (files.hasNext()) {
const file = files.next();
const fileName = file.getName();
// ファイル名から進捗状況を抽出(例:[完了]が含まれていれば完了とみなす)
let progress = "未着手";
if (fileName.includes("[完了]")) {
progress = "完了";
} else if (fileName.includes("[進行中]")) {
progress = "進行中";
}
sheet.appendRow([fileName, progress]);
}
}
タスク管理
タスク管理では、ファイル名を「[担当者名]_[タスク内容]_[期日].docx」のように命名規則を設けることで、誰がいつまでに何をすべきかをファイル名から把握できます。GASでファイル名を取得し、期日が近いタスクを一覧表示することで、タスクの遅延を防ぎます。
function checkDeadlines() {
const folderId = "YOUR_FOLDER_ID"; // タスクフォルダのID
const ssId = "YOUR_SPREADSHEET_ID"; // スプレッドシートのID
const folder = DriveApp.getFolderById(folderId);
const files = folder.getFiles();
const ss = SpreadsheetApp.openById(ssId);
const sheet = ss.getSheetByName("タスク一覧");
sheet.clearContents();
sheet.appendRow(["ファイル名", "担当者", "期日"]);
while (files.hasNext()) {
const file = files.next();
const fileName = file.getName();
// ファイル名から担当者と期日を抽出(例:[田中]_[資料作成]_20240731.docx)
const regex = /^\[(.*?)\]_\[(.*?)\]_(\d{8})\.(.*)$/;
const match = fileName.match(regex);
if (match) {
const 담당자 = match[1];
const 기한 = match[3];
sheet.appendRow([fileName, 담당자, 기한]);
}
}
}
リソース管理
リソース管理では、ファイル名を「[リソース名]_[バージョン]_[日付].pdf」のように命名規則を設けることで、どのリソースが最新版かをファイル名から把握できます。GASでファイル名を取得し、最新版のリソースを一覧表示することで、リソースのバージョン管理を効率化します。
function listLatestResources() {
const folderId = "YOUR_FOLDER_ID"; // リソースフォルダのID
const ssId = "YOUR_SPREADSHEET_ID"; // スプレッドシートのID
const folder = DriveApp.getFolderById(folderId);
const files = folder.getFiles();
const ss = SpreadsheetApp.openById(ssId);
const sheet = ss.getSheetByName("リソース一覧");
sheet.clearContents();
sheet.appendRow(["ファイル名", "バージョン", "日付"]);
while (files.hasNext()) {
const file = files.next();
const fileName = file.getName();
// ファイル名からバージョンと日付を抽出(例:[資料A]_v1.2_20240731.pdf)
const regex = /^\[(.*?)\]_v(.*?)\_(\d{8})\.(.*)$/;
const match = fileName.match(regex);
if (match) {
const 리소스명 = match[1];
const 버전 = match[2];
const 날짜 = match[3];
sheet.appendRow([fileName, 버전, 날짜]);
}
}
}
よくある問題とトラブルシューティング
- ファイルIDが間違っている:
DriveApp.getFileById()
に渡すファイルIDが正しいか確認してください。 - ファイル名が取得できない:ファイルが存在するか、GASがファイルへのアクセス権を持っているか確認してください。
- ファイル名の解析がうまくいかない:ファイル名の命名規則が統一されているか、正規表現が正しいか確認してください。
カスタマイズ方法と応用例
- ファイル名による条件分岐:ファイル名に特定のキーワードが含まれている場合に、処理を分岐させることができます。
- ファイル名による自動分類:ファイル名を解析し、特定のフォルダに自動的にファイルを移動させることができます。
- スプレッドシート連携:ファイル名から取得した情報をスプレッドシートに自動的に入力することができます。
まとめ
GASのFile.getName()
関数を活用することで、プロジェクト管理におけるファイル名管理を効率化し、進捗管理、タスク管理、リソース管理を自動化することができます。ファイル名の命名規則を統一し、GASと組み合わせることで、より高度なプロジェクト管理を実現しましょう。
CodeCampは、現役エンジニアからマンツーマンで学べるオンラインプログラミングスクールです。WebデザインやWebサービス開発、転職支援など、目的に合わせた多様なコースが選べます。
朝7時〜夜23時40分まで、365日レッスンが受けられるため、忙しい方でも自分のペースで学習を進めることが可能です。通過率8%の厳しい選考を通過した質の高い講師陣が、あなたのキャリアチェンジを強力にサポートします。
さらに、未経験者向けのカリキュラムや、学習開始から20日以内の全額返金保証制度もあるため、プログラミング学習に不安を感じている方でも安心して始めることができます。
CodeCampで理想の働き方を実現しよう