GASでDriveフォルダに自動で色を設定

GASDriveカスタマイズ
GASでDriveフォルダに自動で色を設定のサムネイル

GASでDriveフォルダに自動で色を設定


はじめに

こんにちは、GASおじです。今回はGoogle Driveのフォルダに自動で色を設定する方法を紹介するよ。中小企業の経営者やフリーランスの皆さん、ファイル管理は効率化の肝だ。特にフォルダの色分けは視認性アップに効果絶大だが、手動でやると意外と面倒くさいよね。

そこでGoogle Apps Script(以下、GAS)を使って自動化しよう。しかも既存のデータを壊さずに安全に処理する方法を解説するから安心してほしい。SaaSの課金はおじさんも大嫌いなので、Googleアカウントの利用枠内で追加費用なしでできるやり方だ。


Driveフォルダの色設定とは?

Google Driveのフォルダは、Web UIで右クリック→「色を変更」から色を設定できる。これ、GASのDrive APIを使ってプログラムから色を指定できるんだ。

ただし、GASの標準のDriveAppクラスには色を変えるメソッドはない。そこでDrive APIを直接呼び出す必要がある。今回はDrive API v3のfiles.updateメソッドを使ってフォルダのfolderColorRgbプロパティを更新する方法を紹介する。


初期設定と必要権限

  1. Google Cloud PlatformのAPI有効化

    • Google Apps Scriptエディタの「サービス」から「Drive API」を追加する(Drive API v2ではなくv3を使う)。
    • Google Cloud Consoleで「Drive API」を有効化しておく。
  2. 必要な認可スコープ
    スクリプトのappsscript.jsonに以下のスコープが必要だ。

    "oauthScopes": [
      "https://www.googleapis.com/auth/drive"
    ]
    
  3. インストール型トリガー
    自動定期実行したい場合は、GASのトリガー設定からインストール型トリガーを設定しよう。

  4. 個人情報の取扱い
    フォルダIDやファイル情報は個人情報に該当する場合がある。社内外での共有時は十分注意すること。


Driveフォルダの色を自動設定するコード例

今回はフォルダIDのリストを使って、それぞれに指定色を設定し、変更ログを新規に日時付きスプレッドシートに書き出す例を示す。既存のフォルダやファイルは直接変更せず、失敗時のロールバックも考慮する。

const COLOR_MAP = {
  "経理": "#ff0000",
  "営業": "#00ff00",
  "開発": "#0000ff"
};

function setFolderColors() {
  const folderInfo = [
    {id: "フォルダID1", name: "経理"},
    {id: "フォルダID2", name: "営業"},
    {id: "フォルダID3", name: "開発"},
  ];
  
  // 新規スプレッドシート作成(ログ用)
  const logSheet = SpreadsheetApp.create(`Driveフォルダ色設定ログ_${new Date().toISOString()}`);
  const sheet = logSheet.getActiveSheet();
  sheet.appendRow(["日時", "フォルダID", "フォルダ名", "設定色", "結果"]);

  const results = [];
  
  folderInfo.forEach(item => {
    try {
      const color = COLOR_MAP[item.name] || "#ffffff"; // デフォルト白
      // Drive APIのfiles.updateでfolderColorRgbを更新
      const resource = {folderColorRgb: color};
      const updatedFile = Drive.Files.update(resource, item.id);
      results.push({id: item.id, name: item.name, color, status: "成功"});
      sheet.appendRow([new Date().toISOString(), item.id, item.name, color, "成功"]);
    } catch (e) {
      results.push({id: item.id, name: item.name, color: null, status: e.toString()});
      sheet.appendRow([new Date().toISOString(), item.id, item.name, "", `失敗: ${e.message}`]);
    }
  });
  
  Logger.log("処理結果:", results);
}

ポイント解説

  • Drive.Files.updateはDrive APIのv2クラスだが、v3に近い形で色変更に使える。
  • フォルダIDは事前に取得しておく必要がある。
  • 既存データは削除・上書きせず、ログは新規スプレッドシートに出力。
  • エラー発生時もスクリプトは止まらずログに記録。
  • 色コードは#RRGGBB形式で指定。

コスト削減の試算

GASおじ的にこうした自動化で期待できるコスト削減は以下のように考えている。

  • 手動で1フォルダの色変更に約30秒かかると仮定
  • 月100フォルダ管理 → 100 × 30秒 = 3000秒 = 約50分/月
  • 時給3000円換算 → 3000円 × (50/60) ≒ 2500円/月の工数削減
  • 年間では約3万円の節約効果が見込める

もちろん導入費用やスクリプトの保守も考慮すべきだが、Googleアカウントの利用枠内で追加SaaS料金なしで実行できる点は大きい。Apps Scriptの実行時間やAPIクォータの制限はあるので運用時は注意しよう。


復元手順と注意点

  • フォルダの色はDrive UIから手動でいつでも変更できるため、復元は手動が基本。
  • スクリプトのログシートに設定履歴が残るため、必要に応じて過去の色を参照可能。
  • 権限不足で設定に失敗することがあるため、フォルダのオーナー権限または編集権限が必須。
  • 実行前にテスト用フォルダで動作確認を推奨。

まとめ

Driveのフォルダ色設定をGASで自動化することで、手間を減らし、管理の効率化が可能だ。既存データを壊さずにログを残す安全設計なので、安心して運用できる。Googleアカウントの利用枠内で追加の専用SaaS料金なしで使えるのも嬉しいポイント。

ぜひ今回のスクリプトをカスタマイズして、あなたの業務効率化に役立ててほしい。


GASおじラボではこうしたツールを500以上取り揃えているよ。興味ある方はぜひメンバーシップもチェックしてね!

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