特定の列内で、上から順番に検索していき最初の空白セルが何行目か?を見つけるスクリプトを作ってみます。
特定の列で最初の空白セルの行番号を取得する
以下のコードを使用することで、特定の列で最初の空白セルの行番号を取得できます。
まずは、下記のようなスクリプトを準備します。
function findFirstEmptyCellInColumn() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet = ss.getSheetByName("Sheet2");
const lastRow = sheet.getLastRow();
const colValue = sheet.getRange(1,3,lastRow,1).getValues();
Logger.log("colValue:" + colValue);
}
情報 colValue:設置ID,1,2,14,12,3,,,,,,,,,,,,,,,,,,,,
変数「colValue」に列の値が入りました。getRangeで3列目(C1)セルから末尾行までのデータを一気に格納しています。
この配列の中で最初に空白が見つかったインデックス番号を取得してみます。
配列の中身をループで回して取得する
配列の中身をループで回して取得していきます。途中で空白が見つかった場合は、returnで処理を終了して値を返します。
for (let i = 0; i < colValue.length; i++) {
Logger.log("colValue[i]:" + colValue[i]);
if (colValue[i] == "") {
Logger.log("この番号が最初の空白:" + i);
return i;
}
}
情報 colValue:設置ID,1,2,14,12,3,,,,,,,,,,,,,,,,,,,,
情報 colValue[i]:設置ID
情報 colValue[i]:1
情報 colValue[i]:2
情報 colValue[i]:14
情報 colValue[i]:12
情報 colValue[i]:3
情報 colValue[i]:
情報 この番号が最初の空白:6
配列は0番目から始まりますので、iが6の時(配列の7個目)で空白が見つかりました。
スクリプト全文
まとめると、このような状態になります。
[rml_read_more]
function findFirstEmptyCellInColumn() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet = ss.getSheetByName("Sheet2");
const lastRow = sheet.getLastRow();
const colValue = sheet.getRange(1,3,lastRow,1).getValues();
Logger.log("colValue:" + colValue);
for (let i = 0; i < colValue.length; i++) {
Logger.log("colValue[i]:" + colValue[i]);
if (colValue[i] == "") {
Logger.log("この番号が最初の空白:" + i);
return i;
}
}
}
あとは、1を加算すれば行番号と一致させることもできます。
まとめ
以上で、GoogleAppsScriptを使用して列内の最初の空白セルの行番号を見つける方法を作ることができました。
ご参考ください。