ADVERTISEMENT

【Googleスプレッドシート】Apps Scriptでドライブ操作!フォルダ作成・ファイル移動

【Googleスプレッドシート】Apps Scriptでドライブ操作!フォルダ作成・ファイル移動
🛡️ 超解決

Googleスプレッドシートで大量のフォルダを作成したり、ファイルを別の場所に移動したいと思ったことはありませんか。手動で行うと時間がかかり、ミスも発生しやすいです。Apps Scriptを使えば、これらの操作を自動化できます。この記事では、Google Driveのフォルダ作成とファイル移動をApps Scriptで実現する方法を解説します。具体的なコードと手順を紹介しますので、ぜひ参考にしてください。

【要点】Apps ScriptでDrive操作を自動化する3つの基本

  • createFolder()メソッド: 指定したフォルダ内に新しいフォルダを作成します。親フォルダを指定して階層構造を管理できます。
  • moveTo()メソッド: ファイルやフォルダを別のフォルダに移動します。移動先のフォルダオブジェクトを指定するだけで完了します。
  • getFolderById()やgetFiles()の組み合わせ: 既存のフォルダやファイルを取得して、移動や整理の対象を特定します。

ADVERTISEMENT

Apps ScriptでGoogle Driveを操作する基礎知識

Apps ScriptからGoogle Driveを操作するには、Drive Serviceを使用します。このサービスは、フォルダやファイルの作成、取得、移動、削除などの基本的な操作を提供します。スクリプトを実行するには、Googleスプレッドシートの拡張機能メニューからApps Scriptエディタを開きます。Drive Serviceのメソッドは、DriveAppというグローバルオブジェクトから呼び出します。例えば、DriveApp.createFolder(名前)で新しいフォルダを作成できます。

重要なのは、スクリプトの実行には適切な承認が必要なことです。初回実行時に、Google Driveへのアクセス許可を求められます。承認後は、スクリプトがあなたの代わりにDriveを操作できるようになります。また、操作対象のファイルやフォルダはIDで識別します。IDはURLから取得できます。

フォルダ作成とファイル移動の具体的な手順

フォルダを作成するコード

  1. Apps Scriptエディタを開く
    Googleスプレッドシートを開き、メニューの「拡張機能」→「Apps Script」をクリックします。新しいタブでエディタが開きます。
  2. フォルダ作成関数を記述する
    以下のコードを入力します。
    function createNewFolder() {
      var folder = DriveApp.createFolder('新しいフォルダ');
      Logger.log('フォルダID: ' + folder.getId());
    }

    このコードは、マイドライブのルートに「新しいフォルダ」を作成します。

  3. 親フォルダ内に作成する場合
    既存のフォルダ内に作成するには、まず親フォルダを取得します。
    var parentFolder = DriveApp.getFolderById('親フォルダのID');
    var subFolder = parentFolder.createFolder('サブフォルダ');
  4. スクリプトを実行する
    関数を選択し、実行ボタンを押します。初回は承認が必要です。承認後、指定した場所にフォルダが作成されます。

ファイルを移動するコード

  1. 移動元のファイルを取得する
    ファイルIDを使ってファイルオブジェクトを取得します。
    var file = DriveApp.getFileById('ファイルのID');
  2. 移動先のフォルダを取得する
    同様に、フォルダIDでフォルダオブジェクトを取得します。
    var destFolder = DriveApp.getFolderById('移動先フォルダのID');
  3. moveTo()メソッドで移動する
    ファイルオブジェクトのmoveTo()メソッドを使います。
    file.moveTo(destFolder);

    これでファイルが移動されます。元の場所からは削除されます。

  4. 移動の確認
    移動後、ファイルの新しい親フォルダを確認できます。
    Logger.log('新しい親フォルダ: ' + file.getParents().next().getName());

よくあるエラーと対処法

フォルダIDやファイルIDが間違っている

IDはURLの一部です。フォルダを開いたときのURL「https://drive.google.com/drive/folders/XXXXX」のXXXXX部分がIDです。スペルミスや余計な文字が入らないように注意してください。エラーが発生した場合は、まずIDを確認しましょう。

権限が不足している

スクリプトを実行するには、Driveへのアクセス許可が必要です。初回実行時に承認画面が表示されます。承認しないと「権限がありません」というエラーが出ます。また、移動先のフォルダに対する書き込み権限も必要です。共有ドライブの場合は、適切なアクセスレベルを確認してください。

同じ名前のフォルダが既に存在する

createFolder()は、同名のフォルダがあってもエラーにならずに新しいフォルダを作成します。そのため、意図せず重複する場合があります。事前に存在確認をしたい場合は、getFoldersByName()でチェックするとよいでしょう。

ADVERTISEMENT

Drive Serviceの主要メソッド一覧

メソッド名 機能 戻り値
createFolder(name) ルートに新しいフォルダを作成 Folderオブジェクト
createFile(name, content) ルートに新しいファイルを作成 Fileオブジェクト
getFolderById(id) IDからフォルダを取得 Folderオブジェクト
getFileById(id) IDからファイルを取得 Fileオブジェクト
moveTo(destination) ファイルやフォルダを移動 なし(void)
makeCopy(name, destination) ファイルをコピー Fileオブジェクト

この記事では、Apps Scriptを使ってGoogle Driveでフォルダを作成し、ファイルを移動する方法を解説しました。createFolder()とmoveTo()という基本的なメソッドを使うことで、手動操作を自動化できます。今後は、ファイルのリネームやコピー、トリガーを使った定期実行にも挑戦してみてください。DriveAppの他のメソッドを組み合わせれば、より複雑な整理も可能になります。


ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。