質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google ドライブ

Google ドライブは、Google社が提供するオンラインストレージサービス。オンラインストレージ上に、画像や動画、テキスト、Word/PDFのファイルなどさまざまなファイル保存することができます。また、他のユーザーと共有することも可能です。

Q&A

0回答

924閲覧

GAS フォルダ内ファイルの取得

catmail

総合スコア2

Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google ドライブ

Google ドライブは、Google社が提供するオンラインストレージサービス。オンラインストレージ上に、画像や動画、テキスト、Word/PDFのファイルなどさまざまなファイル保存することができます。また、他のユーザーと共有することも可能です。

0グッド

0クリップ

投稿2022/04/07 04:49

質問

https://nujonoa.com/how-to-retrieve-all-files-in-a-specific-folder/
こちらのページを参考に、Googleドライブの特定フォルダ以下にあるファイルのファイル名とURLを抽出し、一覧を作成できるようにしたいのですが、エラーが発生してしまいます。
スプレッドシートには2シートあり、スクリプト実行のボタンを設置したいのは【1】のシートですが、ファイル名とURLは、非表示になっている【2】のシートに打ち出されるようにしたいです。

発生している問題・エラーメッセージ

TypeError: Cannot read property 'length' of undefined getPicID @ コード.gs:32 execution @ コード.gs:7

該当のソースコード

GAS

1function execution() { 2 3 SpreadsheetApp.getActiveSpreadsheet().getSheetByName('【2】のシート').getRange(2, 1, 99999, 4).clearContent() 4//特定のフォルダを指定する 5 var Driveid = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('【2】のシート').getRange(1, 8).getValue() 6//親となるフォルダを関数に渡す 7 getPicID(Driveid) 8 9} 10 11 12function getPicID(Driveid) { 13 14 // フォルダ内のファイルを一括取得 15 var files = DriveApp.getFolderById(Driveid).getFiles(); 16 // 配列を宣言 17 var Pic = []; 18 // 配列に「ファイル名前」「URL」 19 while (files.hasNext()) { 20 //一括取得したファイルの中から順に一つ取り出す 21 var file = files.next(); 22 //「ファイル名」「URL」をそれぞれ格納 23 Pic.push([ 24 file.getName(), 25 file.getUrl(), 26 27 ]); 28 } 29//最終行を取得 30 var lastY = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('【2】のシート').getLastRow() 31//最終行に追加 32 SpreadsheetApp.getActiveSpreadsheet().getSheetByName('【2】のシート').getRange(lastY + 1, 1, Pic.length, Pic[0].length).setValues(Pic) 33//子フォルダを格納 34 var childFolders = DriveApp.getFolderById(Driveid).getFolders(); 35//子フォルダがなくなるまで実行 36 while (childFolders.hasNext()) { 37 var childFolder = childFolders.next(); 38//子フォルダのIDを取得し、同じ関数に返す。 39 getPicID(childFolder.getId()) 40 } 41 42}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問