DriveApp.getFileByIdで勤怠管理を効率化!GASでファイル操作を自動化

DriveApp.getFileByIdで勤怠管理を効率化!GASでファイル操作を自動化

勤怠管理は、企業にとって重要な業務ですが、従業員数が多いほど、その管理は煩雑になります。特に、従業員が各自で作成した勤怠報告書をファイルで提出する場合、ファイルの収集、整理、集計に多くの時間と手間がかかります。Google Apps Script(GAS)のDriveApp.getFileByIdを使うことで、これらの作業を自動化し、大幅な業務効率化を実現できます。

DriveApp.getFileByIdとは?

DriveApp.getFileByIdは、Google Drive APIの一部であり、指定されたIDを持つファイルを取得するためのGASの関数です。この関数を使うことで、ファイル名や場所に関係なく、特定のファイルを確実に取得することができます。

主な機能:

  • ファイルIDによるファイル取得
  • Google Drive内のファイル操作

勤怠管理における課題

従来の勤怠管理では、以下のような課題がありました。

  • 従業員からの勤怠報告書の収集漏れ
  • ファイル名の不統一による整理の困難さ
  • 手作業による集計ミス
  • 集計作業に時間がかかる

GASによる勤怠管理の自動化

GASとDriveApp.getFileByIdを使用することで、これらの課題を解決し、勤怠管理を自動化できます。具体的には、以下の手順で自動化を実現します。

  1. 従業員に固有のファイルIDを持つ勤怠報告書を作成してもらう
  2. GASで特定の期間のファイルIDリストを生成する
  3. DriveApp.getFileByIdを使って、ファイルIDリストにあるファイルを自動的に収集する
  4. 収集したデータをスプレッドシートに自動で集計する

実用的なコード例

例1:指定されたIDのファイルを取得し、ファイル名をログに出力する

function getFileNameById(fileId) {
try {
const file = DriveApp.getFileById(fileId);
Logger.log(file.getName());
} catch (e) {
Logger.log("ファイルが見つかりませんでした: " + fileId);
}
}

この関数は、指定されたfileIdを持つファイルを取得し、そのファイル名をログに出力します。ファイルが見つからない場合は、エラーメッセージをログに出力します。

例2:特定のフォルダ内のすべてのファイルを取得し、ファイルIDとファイル名をスプレッドシートに書き出す

function listFilesInFolder(folderId, spreadsheetId) {
// フォルダを取得
const folder = DriveApp.getFolderById(folderId);
// スプレッドシートを取得
const ss = SpreadsheetApp.openById(spreadsheetId);
// シートを取得
const sheet = ss.getActiveSheet();
// シートをクリア
sheet.clearContents();
// ヘッダー行を追加
sheet.appendRow(["ファイルID", "ファイル名"]);

// フォルダ内のファイルをすべて取得
const files = folder.getFiles();
while (files.hasNext()) {
const file = files.next();
sheet.appendRow([file.getId(), file.getName()]);
}
}

この関数は、指定されたfolderIdのフォルダ内のすべてのファイルを取得し、ファイルIDとファイル名を指定されたspreadsheetIdのスプレッドシートに書き出します。これは、特定のフォルダにある勤怠報告書を一覧化するのに役立ちます。

例3:指定されたファイルIDのファイルを特定のフォルダに移動する

function moveFileToFolder(fileId, destinationFolderId) {
try {
const file = DriveApp.getFileById(fileId);
const destinationFolder = DriveApp.getFolderById(destinationFolderId);
destinationFolder.addFile(file);
const parentFolders = file.getParents();
while (parentFolders.hasNext()) {
const parentFolder = parentFolders.next();
parentFolder.removeFile(file);
}
} catch (e) {
Logger.log("ファイルの移動に失敗しました: " + fileId + " - " + e);
}
}

この関数は、指定されたfileIdのファイルを、指定されたdestinationFolderIdのフォルダに移動します。勤怠報告書を特定のフォルダに整理する際に便利です。

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

  • ファイルが見つからない:ファイルIDが正しいか確認してください。また、ファイルが削除されていないか確認してください。
  • 権限エラー:GASがファイルにアクセスする権限があるか確認してください。

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

  • ファイルの種類(例:Googleスプレッドシート、PDF)に基づいて処理を分岐する
  • ファイルの内容を解析し、特定の情報を抽出する
  • 抽出した情報をデータベースに保存する
  • 毎日または毎週自動的にスクリプトを実行するように設定する

まとめ

DriveApp.getFileByIdとGASを組み合わせることで、勤怠管理におけるファイルの収集、整理、集計を自動化し、大幅な業務効率化を実現できます。この記事で紹介したコード例を参考に、自社の勤怠管理システムを構築し、より効率的な働き方を実現してください。

PR

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

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