【GAS】配列の1番目の要素しか出力されない

前提

GoogleスプレッドシートのGASで
新規自動作成したシートに文字を自動入力する実装をしています。

その中で
配列を自動入力する実装をしてるのですが
配列の1番目の要素しか入力されません。

実現したいこと

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

配列をsetValueメソッドで出力したいが
配列の1番目の要素しか表示されない

該当のソースコード

JavaSccriptソースコード

1 if(latestTest.includes("マーク")){ 2 3 var currentMarkScoreColumnNumber = 6; //マーク点数を入力するセルの最初の列数 4 const firstMarkScoreRowNumber = 26; //マーク点数を入力するセルの最初の行数 5 6 7 8 const markJapaneseTotaColumnNumber = 14; //国語合計の列数を取得 9 const markJapaneseArticleColumnNumber = 15; //論説文点数の列数を取得 10 const markJapaneseNovelColumnNumber = 16; //小説文の列数を取得 11 const markJapaneseClassicColumnNumber = 17; //古文の列数を取得 12 const markJapaneseChineseColumnNumber = 18; //漢文の列数を取得 13 14 var markJapaneseTotalCell = questionSheet.getRange(lastRowNumber,markJapaneseTotaColumnNumber); //国語合計セルを取得 15 var markJapaneseArticleCell = questionSheet.getRange(lastRowNumber,markJapaneseArticleColumnNumber); //論説文セルを取得 16 var markJapaneseNovelCell = questionSheet.getRange(lastRowNumber,markJapaneseNovelColumnNumber); //小説文セルを取得 17 var markJapaneseClassicCell = questionSheet.getRange(lastRowNumber,markJapaneseClassicColumnNumber); //古文セルを取得 18 var markJapaneseChineseCell = questionSheet.getRange(lastRowNumber,markJapaneseChineseColumnNumber); //漢文セルを取得 19 20 // 点数を入力する列数を更新 21 if(markJapaneseTotalCell.isBlank()){ 22 }else{ 23 24 25 var markJapaneseArray = []; //国語の各点数を入れる空配列 26 27 if(markJapaneseArticleCell.isBlank()){ 28 } else{ 29 var markJapaneseArticleScore = markJapaneseArticleCell.getValue(); //論説文点数を取得 30 var markJapaneseArticle = "論説:" + markJapaneseArticleScore + "点"; 31 markJapaneseArray.push(markJapaneseArticle); 32 } 33 34 if(markJapaneseNovelCell.isBlank()){ 35 } else{ 36 var markJapaneseNovelScore = markJapaneseNovelCell.getValue(); //小説点数を取得 37 var markJapaneseNovel = "小説:" + markJapaneseNovelScore + "点"; 38 markJapaneseArray.push(markJapaneseNovel); 39 } 40 41 if(markJapaneseClassicCell.isBlank()){ 42 } else{ 43 var markJapaneseClassicScore = markJapaneseClassicCell.getValue(); //古文点数を取得 44 var markJapaneseClassic = "古文:" + markJapaneseClassicScore + "点"; 45 markJapaneseArray.push(markJapaneseClassic); 46 } 47 48 if(markJapaneseChineseCell.isBlank()){ 49 } else{ 50 var markJapaneseChineseScore = markJapaneseChineseCell.getValue(); //漢文点数を取得 51 var markJapaneseChinese = "漢文:" + markJapaneseChineseScore + "点"; 52 markJapaneseArray.push(markJapaneseChinese); 53 } 54 55 currentStrategySheet.getRange(firstMarkScoreRowNumber,currentMarkScoreColumnNumber,3,1).setValue(markJapaneseArray); 56 currentMarkScoreColumnNumber += 1; //点数を入力する列数を更新 57 } 58

試したこと

1.if文の中のif文("論説文"や"小説文")に問題があると考え、各箇所を1つずつコメントアウトして問題があるか確かめたが、どの場合でも配列の1番目しか表示されなかった

2.配列が二次元配列になってると考えsetVluesに変更したが解決せず

3.配列を入力するシートのセルに問題があると考え、該当セルをmergeメソッドで結合したが解決せず

4.配列を入力するシートのセルサイズが小さくて2番目以降の要素が見えてないと考えセルサイズを大きくしたが解決せず

5.配列を入力するシートでの位置とコードで指定している位置がずれてないか確認したが問題はなかった

6.フォームと連携してるシートの入力に不備があるか確認したが問題はなかった。

7.スペルミスチェック

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

配列を入力するシートはこのようになってます
https://gyazo.com/00173d825320048eae4f89de8036d298

コメントを投稿

0 コメント