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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Q&A

解決済

1回答

3217閲覧

gas うまく動かない ①プロパティ ②addFolder 認識しない

nobuuu

総合スコア11

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

0グッド

0クリップ

投稿2019/07/10 05:46

編集2019/07/10 06:05

前提・実現したいこと

新規フォルダを作成し、参照ファイルの特定のセルを参照して、その参照で検索した
フォルダ配下に、上記新規フォルダを配置したい。

なぜ動かないのかわかりません。。よろしくお願いします。

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

① undefined からプロパティ「2」を読み取れません。
② オブジェクト (th_foldersのID)で関数 addFolder が見つかりません。

該当のソースコード

kanris.forEach(function(kanris){
//新規ファイルの作成
var file_name = kanris + "様_36協定アラートバイネームリスト";
var file_id = SpreadsheetApp.create(file_name).getId();

//新規フォルダの作成 kanrisは任意の参照値
var folder = DriveApp.getFolderById('ID1');
var foldername = kanris + '様' ;
var newfolder = folder.createFolder(foldername).getId();

  //検索するフォルダの名前を特定する
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet2 = ss.getSheetByName('組織監督者一覧') 
sheet2.activate()
var values4 = sheet2.getDataRange().getValues();
var lastRow4 = values4.filter(String).length;
var row;
for(var k = 4 ;k <= lastRow4 ; k++){ 
if(values4[k][2] === kanris.toString()){  //←①ここの[2]が認識されない
row = k;
var name2 = values4[k][3]
var name3 = values4[K][8]
var top_folder= DriveApp.getFolderById('ID2');
var se_folders = top_folder.getFoldersByName(name2).next();
var th_folders = se_folders.getFoldersByName(name3).next().getId();
var nnfolder = th_folders.addFolder(newfolder).getId(); //←②ここのaddFolderが認識されない
folder.removeFolder(newfolder);
};
};

試したこと

独立で動かすとしっかり動くことは確認できているのですが、
①と②を組み合わせたときにうまく動かないです。

デバックで手前の変数はしっかりと中身を確認できています。

①については、具体的な数値で動くことは確認しています。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

guest

回答1

0

ベストアンサー

  1. values4で取得している表は5行以上ありますか?配列は0始まりなので、想定より一つ小さい値からはじめます。

また、forで<=を使っていますが、lengthが10のとき配列は0から9までの10個のkしか存在しませんので<をつかいます。

  1. 直前の行でgetIdをしたらth_foldersはフォルダではなく文字列か数値になりますので、getId()を消してください

投稿2019/07/10 09:53

papinianus

総合スコア12705

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

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

nobuuu

2019/07/11 02:30

values4で取得している表は5行以上ございます。 上記修正しました。ありがとうございます。①・②ともに認識はされるようになったのですが、 var name2 = values4[k][3] 以降が動かなくなってしまいました。
nobuuu

2019/07/11 02:46

すみません、k=4 →k=3で大丈夫となりました。 ②のgetId()を消してください、としてもaddFolderは認識してくれません。。 addFolder(string) が見つかりません。 となります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問