例文を使って繰り返し業務を時短

【GAS】ループ処理して特定のワードに一致した行・列を削除する

【GAS】ループ処理して、特定のワードに一致した行・列を削除する GAS

特定のシートにある行を削除する

スプレッドシートの特定のシートにある行を特定のワードに一致した場合、該当行を削除する

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 特定のワードに一致した場合_該当行を削除() {
      • 関数名は自由に設定できますが、関数名の後ろに()が必要です。この関数名は、後で手動で実行するために必要です。
  • 2-3行目:変数宣言
    • スクリプトが実行された時点でアクティブなシートを取得し、変数に代入します。MaxRow1は、B列に入力されている値のうち、最終行の行番号を取得し、MaxCol1は、最後にデータが入力されている列の列番号を取得します。
  • 4-9行目:ループ処理
    • B列の最終行から、2行目までループ処理を行います。その際、以下の条件が満たされる場合、該当する行を削除します。
      • A列に「総計」がある場合
      • A列に何も入力されていない場合
      • G列に「年間総計」がある場合
  • 10-12行目:完了メッセージ
    • 処理が終了した後、alertメソッドを使用してポップアップで「完了」と表示されます。

*このコードでは、スプレッドシートの最終行と最終列を取得するために、getRangeとgetLastColumn、getValuesとfilterを使用しています。また、行を削除するために、deleteRowメソッドを使用しています。

コメント

タイトルとURLをコピーしました