今回は前回の記事の続きです。
前回のサンプル1では事前に配列の数が分かっていましたが、このままでは文字列を区切った後の配列数が事前に分からない場合に対処する事ができません。
そこで今回は、文字列を区切った後の配列数が事前に分からない場合の処理方法についてご紹介します。
(というか、配列の数は事前に分からない場合がほとんどかもしれません)
文字列を区切った後の配列数が事前に分からない場合
それでは、下記のサンプル2を元にご紹介します。
・サンプル2
function myFunction() { var ss = SpreadsheetApp.getActiveSpreadsheet(); //アクティブなスプレッドシートを取得 var str = “1,2,3,4,5”; Browser.msgBox(count); for (var i = 0; i < count; i++) { sh.getRange(i + 1, 1).setValue(ary[i]); //配列変数aryのi+1番目に格納されている値をセルAi+1に入力 |
それでは上記のサンプル2についてですが、
var ary = str.split(‘,’)
までは前回のサンプル1と同様になります。
次の、
var count = ary.length;
ですが、
length
を使って配列の数をカウントし、取得した数値を変数countに代入しています。
Browser.msgBox(count);
は本来必要ない処理ではありますが、変数countに代入された数値が何であるかを確認するために、今回はメッセージボックスに表示させています。
メッセージボックスにより、今回の配列変数aryの配列数は5つ、つまり[0]~[4]までの格納場所が存在している事が分かりましたので、これを元に処理を進めていきます。
for (var i = 0; i < count; i++) {
のfor文ですが、変数iの初期値を0とし、iが変数countより小さい間、つまりiが0~4の間は処理を繰り返すようにします。
sh.getRange(1, i + 1).setValue(ary[i]);
では、アクティブシートのA列のi+1目、つまりセルA1~A5に、配列変数aryの[0]~[4]に格納されている値を順番に記入していく処理となります。
これで文字列を区切った後、いくつの文字列に分かれて配列に格納されたかが分からなくても、その都度ごとに配列数を数えて臨機応変に処理する事ができます。