技術ブログ

GASでGoogle Driveを自動整理!効率化の秘訣

/ 初心者向け

GASでGoogle Driveを自動整理!効率化の秘訣

Google Driveのファイル整理、もう限界!

Google Driveを使っていると、いつの間にかファイルが散乱していませんか?

  • 「あのファイルどこだっけ?」と探すのに時間がかかる
  • 重複ファイルが増えて容量を圧迫する
  • 共有フォルダがカオス状態

こんな悩みを抱えている方は多いはずです。手作業での整理は、時間も労力もかかり、継続も難しいものです。そこで今回は、Google Apps Script (GAS) を活用して、Google Driveのファイルを自動で整理する方法をご紹介します。GASを使えば、定型的なファイル整理作業を自動化し、あなたの貴重な時間を節約できます!

Google Apps Script (GAS) とは?

Google Apps Scriptは、Google Workspace (Gmail、Google ドライブ、スプレッドシート、ドキュメントなど) の機能を拡張したり、自動化したりするためのJavaScriptベースのスクリプト言語です。特別な開発環境は必要なく、ブラウザ上でコードを書いて実行できます。GASを使えば、普段使っているGoogleサービスを連携させて、様々な業務を効率化できるのです。

GASでGoogle Driveを自動整理する基本

まずは、GASを使ってGoogle Driveのファイルを整理する基本的な方法を見ていきましょう。

1. 特定のフォルダにファイルを移動する

例えば、「請求書」というフォルダに、ファイル名に「請求書」と含まれるファイルをすべて移動させたい、といったシナリオが考えられます。GASでは、DriveApp サービスを使ってファイルやフォルダを操作できます。

function organizeInvoices() {
  const sourceFolderId = 'YOUR_SOURCE_FOLDER_ID'; // 移動元のフォルダID
  const destinationFolderId = 'YOUR_DESTINATION_FOLDER_ID'; // 移動先のフォルダID

  const sourceFolder = DriveApp.getFolderById(sourceFolderId);
  const destinationFolder = DriveApp.getFolderById(destinationFolderId);

  const files = sourceFolder.getFiles();

  while (files.hasNext()) {
    const file = files.next();
    const fileName = file.getName();

    if (fileName.includes('請求書')) {
      destinationFolder.addFile(file);
      file.getParents().next().removeFile(file); // 移動元のフォルダから削除
      Logger.log(`'${fileName}' を '${destinationFolder.getName()}' に移動しました。`);
    }
  }
}

コードの説明:

  • YOUR_SOURCE_FOLDER_IDYOUR_DESTINATION_FOLDER_ID を、実際のフォルダIDに置き換えてください。フォルダIDは、Google DriveのURLの末尾にある文字列です。
  • sourceFolder.getFiles() で移動元のフォルダにあるすべてのファイルを取得します。
  • fileName.includes('請求書') でファイル名に「請求書」という文字列が含まれているかを確認します。
  • destinationFolder.addFile(file) でファイルを移動先のフォルダに追加します。
  • file.getParents().next().removeFile(file) で、元のフォルダからファイルを削除します。 (※ファイルが複数のフォルダに存在する場合、この処理は注意が必要です)

2. 特定の条件でファイルを削除する

長期間更新されていないファイルや、特定の拡張子を持つ不要なファイルを自動で削除することも可能です。定期的なクリーンアップに役立ちます。

function deleteOldFiles() {
  const folderId = 'YOUR_FOLDER_ID'; // 対象フォルダID
  const daysOld = 365; // 削除するファイルの基準日数 (例: 1年)

  const folder = DriveApp.getFolderById(folderId);
  const files = folder.getFiles();
  const cutoffDate = new Date();
  cutoffDate.setDate(cutoffDate.getDate() - daysOld);

  while (files.hasNext()) {
    const file = files.next();
    const lastUpdated = file.getLastUpdated();

    if (lastUpdated < cutoffDate) {
      file.setTrashed(true); // ゴミ箱に移動
      Logger.log(`'${file.getName()}' (${lastUpdated}) をゴミ箱に移動しました。`);
    }
  }
}

コードの説明:

  • YOUR_FOLDER_ID を、整理したいフォルダIDに置き換えてください。
  • daysOld で、最終更新日から何日以上前のファイルを削除するかを指定します。
  • file.getLastUpdated() でファイルの最終更新日時を取得し、cutoffDate と比較します。
  • file.setTrashed(true) でファイルをゴミ箱に移動します。完全に削除したい場合は file.setTrashed(false) の後に file.deleteFile() を実行しますが、誤操作を防ぐため、まずはゴミ箱に移動するのがおすすめです。

GASスクリプトの実行方法

1. Google Driveで「スクリプトエディタ」を開く (新規作成 > その他 > Google Apps Script)。

2. 上記のコードを貼り付け、必要箇所を編集します。

3. 保存ボタン (フロッピーディスクのアイコン) をクリックし、プロジェクトに名前を付けます。

4. 実行したい関数を選択し、実行ボタン (再生ボタンのアイコン) をクリックします。

5. 初回実行時には、スクリプトの実行に必要な権限の承認を求められます。指示に従って承認してください。

さらに高度な整理テクニック

1. フォルダ構造の自動生成

月別や年別に自動でフォルダを作成し、その中にファイルを移動させることも可能です。例えば、毎月1日に前月の請求書を移動させる、といった運用ができます。

2. ファイル名の規則化

ファイル名に日付や連番を自動で付与することで、ファイル管理がしやすくなります。例えば、YYYYMMDD_ファイル名.拡張子 のように統一できます。

3. トリガーの設定

GASスクリプトは、特定の時間やイベントをトリガーとして自動実行させることができます。例えば、「毎週月曜日の朝9時に実行する」「ファイルが作成されたら実行する」といった設定が可能です。

スクリプトエディタの左側にある時計のアイコン (トリガー) から設定できます。

まとめ

Google Driveのファイル整理は、GASを活用することで劇的に効率化できます。今回ご紹介した基本的な操作だけでなく、あなたの業務に合わせて様々な自動化が可能です。ぜひGASを使いこなし、快適なGoogle Driveライフを実現してください!

まずは簡単なスクリプトから試してみて、徐々に自動化の範囲を広げていくのがおすすめです。GASの学習リソースは豊富にあるので、ぜひ色々な機能を試してみてください。

GAS自動化の導入相談

請求書PDF作成、Gmail自動送信、Slack通知、スプレッドシート連携などを業務に合わせて実装できます。

請求書自動生成ツールを見る / SNS自動投稿ツールを見る