特定のシートにある行を削除する
スプレッドシートの特定のシートにある行を特定のワードに一致した場合、該当行を削除する
function 特定のワードに一致した場合_該当行を削除() {
var targetSheet = SpreadsheetApp.getActiveSheet();
var MaxRow1 = targetSheet.getRange("B:B").getValues().filter(String).length;
var MaxCol1 = targetSheet.getLastColumn();
for (var i = MaxRow1; i >= 2; i--) {
if (targetSheet.getRange(i, 1).getValue() == "総計" ||
targetSheet.getRange(i, 1).getValue() == "" ||
targetSheet.getRange(i, 7).getValue() == "年間総計") {
targetSheet.deleteRow(i);
}
}
SpreadsheetApp.getUi().alert("完了");
}
解説
このコードは、最後の行まで繰り返し、指定された条件に一致する場合に、該当行を削除します。
- 1行目:関数名
- function 特定のワードに一致した場合_該当行を削除() {
- 関数名は自由に設定できますが、関数名の後ろに()が必要です。この関数名は、後で手動で実行するために必要です。
- function 特定のワードに一致した場合_該当行を削除() {
- 2-3行目:変数宣言
- スクリプトが実行された時点でアクティブなシートを取得し、変数に代入します。MaxRow1は、B列に入力されている値のうち、最終行の行番号を取得し、MaxCol1は、最後にデータが入力されている列の列番号を取得します。
- 4-9行目:ループ処理
- B列の最終行から、2行目までループ処理を行います。その際、以下の条件が満たされる場合、該当する行を削除します。
- A列に「総計」がある場合
- A列に何も入力されていない場合
- G列に「年間総計」がある場合
- B列の最終行から、2行目までループ処理を行います。その際、以下の条件が満たされる場合、該当する行を削除します。
- 10-12行目:完了メッセージ
- 処理が終了した後、alertメソッドを使用してポップアップで「完了」と表示されます。
*このコードでは、スプレッドシートの最終行と最終列を取得するために、getRangeとgetLastColumn、getValuesとfilterを使用しています。また、行を削除するために、deleteRowメソッドを使用しています。
コメント