
GASで、Googleドライブのフォルダを指定するにはどうすればいいんだろう?
GASを使っていると、Gmailの添付ファイルやPDF化した書類を、GASでGoogleドライブに保存したいときがよくあると思います。
そんなときに、どうやってGoogleドライブのフォルダIDを取得すればいいのか悩むのではないでしょうか?
そこでこのページでは、パターン別に、GoogleドライブのフォルダIDを取得する方法を紹介します。
すぐに使えるコードつきなので、参考にしてみてください。
手動でGoogleドライブのフォルダIDを取得する方法
まずは、手動でGoogleドライブのフォルダIDを取得する方法を紹介します。
GoogleドライブのフォルダIDは、フォルダURLの「folders/」の後の文字列です。


たとえば、上記のフォルダURLなら「1vEsbqAyxZDntE-Kp6Ran4AA52NhoAJsV」の部分がフォルダIDですね。
GoogleドライブのフォルダIDを取得するコード
ここからは、GoogleドライブのフォルダIDを取得する方法を2パターン紹介していきます。
URLをコード内に書く
以下の「ここにURLをペーストする」にURLを入れれば「folderId」にフォルダIDが格納されます。
URLをシングルコーテーション「’」で挟むのを忘れないでくださいね。
// 保存するGoogle DriveのフォルダのURL
let folderURL = 'ここにURLをペーストする';
// 保存するGoogle DriveのフォルダのフォルダID
let folderId = folderURL.split('/folders/')[1];
// 取得したフォルダIDを出力して確認する
console.log(folderId);
このコードのフォルダIDを取得する部分(4行目)を詳しく解説します。
- splitメソッドを使って、フォルダURLを「/folders/」の前後で分割する。
- 「https://drive.google.com/drive/u/0」と「フォルダID」の2つの文字列ができる。
- 分割された文字列は配列に入る。
- 配列の2つ目の要素がフォルダIDになる。
- [1]のかたちで、配列の要素番号を指定して、フォルダIDを「folderId」に格納する



4行目で起こっていることが多すぎ……



わからないときは、とりあえずコードをコピペして使えばOKです!
URLをスプレッドシートのセルに入力する
次に、フォルダURLをスプレッドシートのセルに入力した場合の、フォルダIDの取得方法を紹介します。
基本的には、先ほどのコードと同じです。
1〜6行目にセルからフォルダURLを取得するコードを追加しました。
//アクティブなスプレッドシートを取得する
let ss = SpreadsheetApp.getActiveSpreadsheet();
//アクティブなシートを取得する
let sheet = ss.getActiveSheet();
// 保存するGoogle DriveのフォルダのURLをA1セルから取得する
let folderURL = sheet.getRange('A1').getValue();
// 保存するGoogle DriveのフォルダのフォルダID
let folderId = folderURL.split('/folders/')[1];
// 取得したフォルダIDを出力して確認する
console.log(folderId);
さいごに
GASを書いていると、GoogleドライブのフォルダIDを使う機会は多いです。
何度も調べなくていいように、このページをお気に入りに登録しておくのがおすすめです。
すぐにコードを見返せますよ。
コメント