Edited at

GASメモ:今のセルの内容の下のセルの内容を参照しようとするとエラーが!


この記事は

仕事でGASを書いているときに個人的にウンウンしたところの備忘録です

ブログに全体の作業をまとめる一方で、別の作業でも詰まりそうなところを後からサクッと参照するため、短い記事でまとめていく予定。

要するに自分用、初心者レベルのことしか書いてませんのでよろしくお願いします。


今回やりたかったこと

スプレッドシートのA列に並んでいるデータを配列で取得してFor文で配列番号の中身を1つずつ処理していくが、その中で配列番号iとその次とか次の次の配列番号i + offsetNumを両方参照して条件式に使いたい。

if (Array[i] = 正規表現に一致 && Array[i + offsetNum] = !正規表現に一致){

  処理式

}

みたいなことですね。


ただし

そのままやるとエラーが出ます


なぜなのか

配列の最後の配列番号を処理する時に「その次の配列番号」が存在しないため


解決方法

これで本当に良いのかは分かりませんが、とりあえず一見ちゃんと動いてるのでOKです(プログラミング向いてない人)


GAS.js

    var nowCellValue = listArrayValue1[i];

var nextCellValue = listArrayValue1[i];
var offsetNum = 0;
if (i <= listLastRow - 2){
nextCellValue = listArrayValue1[i + offsetNum + 1];
}

言葉で言うと、「処理中の配列番号が配列の最後でなければ、nextCellValueに次のセルであることを定義して、そうでなければ処理中のセルと同じ扱いにしておく(ここがそれで良いのか?ポイントなんですが、ブランク""とかにしておくと確か動かなかったのでこうしてます…)」ということですね。

おわり