DriveのファイルをGASで自動変換&整理

GASDrive業務効率化
DriveのファイルをGASで自動変換&整理のサムネイル

DriveのファイルをGASで自動変換&整理

みなさん、GASおじです。中小企業の経営者やフリーランスの皆さん、Google Driveに溜まったファイル、どう整理してますか?放置すると検索性も悪くなるし、ファイル形式がバラバラで扱いにくいですよね。そこで今日は、Google Apps Script(以下GAS)を使ってDrive内のファイルを自動で変換&整理する方法を紹介します。

GASはGoogleアカウントの利用枠内で使えるので、追加の専用SaaS料金は不要。ただし、Apps Scriptのクォータや実行上限があるので大量処理は注意してください。おじさんの経験から言うと、事前のバックアップや入力検証をしっかりやることがトラブル回避のポイントです。


初期設定と必要な権限

このスクリプトを動かすには、Googleアカウントで以下の権限が必要です。

  • Driveのファイル一覧取得とコピー権限
  • スプレッドシートの新規作成権限

また、installable trigger(時間主導型トリガー)を設定すれば、定期的に自動実行も可能です。トリガーはGASの「編集」メニュー → 「現在のプロジェクトのトリガー」から設定してください。

個人情報の取り扱いには十分注意し、スクリプト実行前に必ずバックアップを取りましょう。もし誤った操作があっても、元ファイルは手を付けず新規ファイルに結果を書き出すので安心です。


コード例:DriveのGoogleドキュメントをPDFに変換して日時付きフォルダに保存

以下は、Drive内の指定フォルダにあるGoogleドキュメントをPDF化し、変換結果を新規日時付きフォルダに保存する例です。既存ファイルは変更しません。

function convertDocsToPdfAndOrganize() {
  const sourceFolderId = 'SOURCE_FOLDER_ID_HERE'; // 変換対象のフォルダIDをセット
  const drive = DriveApp;
  const sourceFolder = drive.getFolderById(sourceFolderId);

  // バックアップ用に新規日時付きフォルダを作成
  const timestamp = Utilities.formatDate(new Date(), Session.getScriptTimeZone(), 'yyyyMMdd_HHmmss');
  const backupFolderName = 'PDF変換結果_' + timestamp;
  const backupRoot = drive.getRootFolder();
  const backupFolder = backupRoot.createFolder(backupFolderName);

  // ファイル一覧取得(ドキュメントのみ)
  const files = [];
  const fileIterator = sourceFolder.getFilesByType(MimeType.GOOGLE_DOCS);
  while (fileIterator.hasNext()) {
    files.push(fileIterator.next());
  }

  if (files.length === 0) {
    Logger.log('変換対象のGoogleドキュメントが見つかりませんでした。');
    return;
  }

  files.forEach(file => {
    try {
      // 入力検証:ファイル名が空でないか
      const originalName = file.getName();
      if (!originalName || originalName.trim() === '') {
        Logger.log('ファイル名が不正: ' + file.getId());
        return;
      }

      // PDF形式でエクスポート
      const pdfBlob = file.getAs(MimeType.PDF);
      const pdfName = originalName + '.pdf';

      // 新規ファイルとして保存(既存ファイルは更新しない)
      backupFolder.createFile(pdfBlob).setName(pdfName);
    } catch (e) {
      Logger.log('ファイル変換エラー: ' + file.getName() + ' エラー内容: ' + e.message);
    }
  });

  Logger.log('処理完了。PDFはフォルダ「' + backupFolderName + '」に保存されました。');
}

バッチ処理のポイントと復元手順

このスクリプトはバッチ処理を意識しており、ファイルの取得から変換、保存までを一連で行います。途中でエラーがあっても、そのファイルだけログに記録し処理を継続する設計です。

復元手順としては、変換結果のフォルダがDriveのルートに新規作成されるため、元ファイルはそのまま残ります。もし誤って変換結果を削除しても、元ファイルが無傷なら再実行すればOKです。


コスト削減の仮定と計算例

例えば、月に100ファイルを手動でPDF変換&整理しているとしましょう。1ファイルあたりの作業時間を3分と仮定すると、月300分(5時間)の作業時間がかかります。時間単価を1,500円とすると、

5時間 × 1,500円 = 7,500円/月

この作業をGASで自動化すれば、毎回手作業する必要はなく、時間的コストは大幅に削減可能です。ただし、スクリプトのメンテナンスや初期設定に多少の時間はかかるため、完全にゼロとは言えません。


まとめ

  • Google Apps ScriptはGoogleアカウントの利用枠内で使えるが、クォータに注意
  • 既存ファイルは直接更新せず、新規日時付きフォルダやファイルに結果を保存
  • バックアップや入力検証を必ず行い、トラブルを未然に防ぐ
  • installable triggerを使えば定期自動化も可能
  • コスト削減効果は作業量と単価に応じて計算可能

Driveのファイル整理を自動化して、業務効率化に役立ててくださいね。GASおじはこれからも皆さんの手助けをしていきます。


GASおじラボで500ツール使い放題 →