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から取得できます。
フォルダ作成とファイル移動の具体的な手順
フォルダを作成するコード
- Apps Scriptエディタを開く
Googleスプレッドシートを開き、メニューの「拡張機能」→「Apps Script」をクリックします。新しいタブでエディタが開きます。 - フォルダ作成関数を記述する
以下のコードを入力します。function createNewFolder() { var folder = DriveApp.createFolder('新しいフォルダ'); Logger.log('フォルダID: ' + folder.getId()); }このコードは、マイドライブのルートに「新しいフォルダ」を作成します。
- 親フォルダ内に作成する場合
既存のフォルダ内に作成するには、まず親フォルダを取得します。var parentFolder = DriveApp.getFolderById('親フォルダのID'); var subFolder = parentFolder.createFolder('サブフォルダ'); - スクリプトを実行する
関数を選択し、実行ボタンを押します。初回は承認が必要です。承認後、指定した場所にフォルダが作成されます。
ファイルを移動するコード
- 移動元のファイルを取得する
ファイルIDを使ってファイルオブジェクトを取得します。var file = DriveApp.getFileById('ファイルのID'); - 移動先のフォルダを取得する
同様に、フォルダIDでフォルダオブジェクトを取得します。var destFolder = DriveApp.getFolderById('移動先フォルダのID'); - moveTo()メソッドで移動する
ファイルオブジェクトのmoveTo()メソッドを使います。file.moveTo(destFolder);これでファイルが移動されます。元の場所からは削除されます。
- 移動の確認
移動後、ファイルの新しい親フォルダを確認できます。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
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
Googleスプレッドシートの人気記事ランキング
- 【Googleスプレッドシート】GOOGLEFINANCE関数で株価・為替を取得!リアルタイムデータの呼び出し
- 【Googleスプレッドシート】印刷範囲を指定して印刷!特定範囲だけPDFや紙に出す手順
- 【Googleスプレッドシート】新しいスプレッドシートを作成する3つの方法!ドライブ・URL・テンプレート
- 【Googleスプレッドシート】数値の連続データを自動入力!オートフィルの活用
- 【Googleスプレッドシート】ダークモードを有効にする!目に優しい配色への切替
- 【Googleスプレッドシート】株価APIで株式データを自動取得!GOOGLEFINANCE超え活用
- 【Googleスプレッドシート】共有相手が編集できない時のチェック!権限と許可状態の確認
- 【Googleスプレッドシート】ページ設定で用紙サイズと向きを調整!印刷レイアウトの基本
- 【Googleスプレッドシート】Excelファイルxlsxをインポートする手順!ドラッグ&ドロップで取り込み
- 【Googleスプレッドシート】条件付き書式をコピーする!書式のみペーストの活用
