GAS Drive階層操作 完全ガイド|Google Driveのフォルダ・ファイル管理を自動化する実務テクニック

2026年5月27日水曜日

GAS JavaScript プログラミング

t f B! P L

GAS Drive階層操作 完全ガイド|Google Driveのフォルダ・ファイル管理を自動化する実務スキル

Google Apps Script(GAS)を触り始めた頃、「スプレッドシート操作はできるようになったけど、実務っぽい自動化まではまだ遠い…」と感じたことはありませんか。

実はその壁を超える鍵になるのがGoogle Driveの階層操作です。

フォルダを作る。ファイルを移動する。バックアップを作る。添付ファイルを保存する。

こうした作業を人の手ではなくプログラムに任せられるようになると、一気に「業務自動化」の世界が広がります。

旅行中でもスマホを見ながら「昨日届いた請求書、もう整理終わってるな」と確認できる。そんな仕組みを作れるのがGASの魅力です。

この記事では、GAS Drive階層操作の基本から実務パターン、RPA構築につながる考え方まで体系的に解説します。


Drive階層操作とは?Google Driveをプログラムで制御する考え方

Google Driveは単なる保存場所ではありません。 GASではDrive全体をプログラムで操作できます。

フォルダ
├ ファイル
├ サブフォルダ
│ └ ファイル

人がクリックして整理している作業を、コードに置き換えるイメージです。

  • ファイル整理
  • 自動分類
  • バックアップ
  • データ収集
  • メール添付の保存

実務ではこれがRPA(業務自動化)の土台になります。


GASでDrive操作を行う基本API「DriveApp」

Google Driveを扱う中心になるのがDriveAppです。


DriveApp

フォルダ取得、作成、検索、削除などDrive関連の処理はほぼここから始まります。


GAS フォルダ操作の基本

フォルダをID指定で取得する


const folder = DriveApp.getFolderById("フォルダID");

Drive URLに含まれるIDを使えば、特定フォルダへ直接アクセスできます。

フォルダ名で検索する


const folders = DriveApp.getFoldersByName("フォルダ名");

while (folders.hasNext()) {
 const folder = folders.next();
}

複数ヒットする可能性があるため、Iterator(反復処理)で取得します。

フォルダを作成する


const newFolder = DriveApp.createFolder("新規フォルダ");

月次レポート管理や請求書保管など、自動生成でかなり業務効率が上がります。


GAS ファイル操作の基本

ファイル取得


const file = DriveApp.getFileById("ファイルID");

名前で検索


const files = DriveApp.getFilesByName("test.txt");

ファイル作成


DriveApp.createFile("test.txt","内容");

ファイルコピー


file.makeCopy("コピー名",folder);

テンプレート運用で非常によく使います。

削除(ゴミ箱移動)


file.setTrashed(true);

完全削除ではなくゴミ箱へ移動するので、誤操作対策にもなります。


GAS Drive階層操作の最重要ポイント「フォルダ探索」

実務で最も重要なのがフォルダ内を辿る処理です。

フォルダ内ファイル取得


const files = folder.getFiles();

while(files.hasNext()){
 const file = files.next();
 Logger.log(file.getName());
}

サブフォルダ取得


const subFolders = folder.getFolders();

ここがDrive自動化の入口になります。


GAS 再帰処理|Drive全階層探索の実務テクニック

ここはGAS上級者への分岐点です。

旅行中に撮った写真を自動整理したい。 請求書フォルダを毎日巡回したい。 大量ファイルを一覧化したい。

そういう時に必要なのが再帰処理です。


function scanFolder(folder){

 const files = folder.getFiles();

 while(files.hasNext()){
   const file = files.next();
   Logger.log(file.getName());
 }

 const subFolders = folder.getFolders();

 while(subFolders.hasNext()){
   scanFolder(subFolders.next());
 }

}

実行側。


const root = DriveApp.getFolderById("ID");

scanFolder(root);

これでDrive内の全階層を探索できます。

RPA構築では必須レベルの考え方です。


実務でよく使うGAS Drive自動化パターン

① ファイル一覧をスプレッドシートへ出力

管理台帳を自動生成したい時に便利です。

  • ファイル名
  • ファイルID
  • 作成日時

一覧化するだけで運用管理が一気に楽になります。

② ファイル自動整理


if(name.includes("請求書")){
 file.moveTo(target.next());
}

請求書、契約書、見積書など分類作業を完全自動化できます。

③ バックアップ生成


file.makeCopy(
 "backup_" + file.getName(),
 backupFolder
);

毎日バックアップを残す運用も簡単です。

④ Gmail添付ファイル自動保存


const threads =
 GmailApp.search("has:attachment");

threads.forEach(thread => {

 thread.getMessages().forEach(msg => {

  msg.getAttachments().forEach(file => {

   folder.createFile(file);

  });

 });

});

これはかなり強力です。

請求書やレポートをメール受信した瞬間にDriveへ保存できます。


Drive情報を取得する便利メソッド


file.getName()
file.getSize()
file.getDateCreated()
file.getLastUpdated()
file.getUrl()

メタデータを取得すると分析や管理がさらに楽になります。


高度検索|Drive検索をSQL風に扱う


const files =
DriveApp.searchFiles(
"name contains '請求書'"
);

大量ファイル管理では検索性能が重要です。

Driveを「保存場所」ではなく「データベース」のように扱う感覚が育ってきます。


実務ではJSON化して扱う


list.push({

 name:file.getName(),
 id:file.getId(),
 date:file.getDateCreated()

});

オブジェクト化しておくと、

  • フィルタ
  • 並び替え
  • 集計
  • API連携

が圧倒的に楽になります。


GAS Drive操作でよくあるミス

next()忘れ


files.next()

Iterator処理では必須です。

hasNext()チェック漏れ

存在確認なしでnext()するとエラーになります。

再帰無限ループ

探索ロジック設計を誤ると処理が止まらなくなります。


Drive階層操作の本質|GAS上級者が見ている景色

Drive階層操作の核心はこれです。

DriveをDB(データベース)のように扱う

検索する。 集計する。 条件分岐する。 必要な場所へ移動する。

この流れが作れるようになると、単なるGAS学習者から実務レベルへ一段上がれます。


まとめ|GASでGoogle Driveを完全自動化しよう

  • フォルダ取得
  • ファイル操作
  • 階層探索
  • 再帰処理
  • Gmail連携
  • バックアップ運用
  • オブジェクト化

GASのDrive操作を習得すると、「毎日誰かが手でやっている仕事」を自動化できるようになります。

そして最終的に目指すのはこれです。

「Driveをプログラムで支配する」

再帰処理、条件分岐、API連携を組み合わせれば、ファイル整理の概念が大きく変わります。

GAS実務力を伸ばしたいなら、まずはDrive階層操作を武器にしてみてください。

このブログを検索

Blog Archive

Welcome



旅するWebライター「Hide」のブログへようこそ!

2年間の世界一周を終え、今は旅の思い出を言葉にしながら、AIやプログラミングという新しい冒険を楽しんでいます。最新技術を味方につけて、もっと自由でクリエイティブな発信を続けていきます!

人気の投稿

QooQ