今回は、Google Apps Script (GAS)を使って、Google スプレッドシートで特定の文字を含む行を自動的に削除する方法をご紹介します。
GASを使って、不要な単語を簡単に削除することができます。
Google Apps Scrip (GAS) の準備
まずは、GASを使うための準備を進めます。
1.「拡張機能」メニューからApps Scriptを開く
Google スプレッドシート上部のメニューバーにある「拡張機能」を左クリックし、「Apps Script」を選択します。
2.スクリプトエディタを開く
次の画像のようにGoogle Apps Scriptのエディタが別タブで開きます。
エディタ上にコードを記述することで、スプレッドシートの操作を自動化できます。
特定の文字を含む行を削除するためのコード
次に、スプレッドシートの指定の列から特定の文字を含む行を削除するために、GASのコードを書いていきます。
サンプルコード
サンプルコードでは、B列に含まれる文字列の中で「c」という文字が含まれている行を削除するようにしています。
function myFunction() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var lastRow = sheet.getLastRow();
var column = sheet.getRange("B:B");
var values = column.getValues();
for (var i = lastRow; i >= 1; i--) {
if (values[i-1][0].indexOf('c') !== -1) {
sheet.deleteRow(i);
}
}
}
サンプルコードの解説
1.シート情報を取得
SpreadsheetApp.getActiveSpreadsheet().getActiveSheet()
で現在アクティブなスプレッドシートのシートオブジェクトを取得します。
2.最終行の取得
getLastRow()
で、シート上の最後の行番号を取得します。
これにより、スプレッドシートの範囲を動的に把握できます。
3.B列のデータを取得
getRange()
でスプレッドシート上の特定の範囲を取得します。
今回はB列を指定したいため、B列全体を指定する「B:B」を引数としてgetRange("B:B")
としています。
そして、getValues()
で指定した範囲内のセルの値を2次元配列として取得します。
行と列のインデックスを指定することで、各セルの値を取得することができます。
GASで複数の離れた範囲のセルを一度に操作した場合は、こちらの記事をご覧ください。
4.特定の文字を検索
getValues()
で指定した列のセルの値を取得できたら、for文で各行の文字列の中に指定した文字が含まれているかどうかをチェックしていきます。indexOf()
は、文字列の中に指定した単語や文字が出現する最初の位置を取得するメソッドです。
指定した文字が文字列の中に含まれない場合は-1 を返します。
サンプルコードでは文字’c’が含まれている行を削除していきます。
指定した文字’c’が文字列の中に含まれる場合は、values[i-1][0].indexOf('c')
が0以上の整数となるので、今回はvalues[i-1][0].indexOf('c') !== -1
とすることで文字が含まれるかどうかを判断しています。
5.行を削除
指定した文字が各行の文字列に含まれている場合は、その行をdeleteRow(i)
で削除します。
GASの実行
次に、作成したスクリプトを実行して、スプレッドシートから指定の文字を含む行を削除していきます。
1. スクリプトをエディタに貼り付ける
Apps Scriptエディタに、先ほどのサンプルコードを貼り付けます。
2. プロジェクトを保存
Ctrlキーを押しながら「S」キーを押してプロジェクトを保存するか、「プロジェクトを保存」マークを左クリックしてプロジェクトを保存します。
3. スクリプトを実行
「実行」ボタンを押してスクリプトを実行します。
実行中は少し時間がかかる場合がありますが、処理が完了するとスプレッドシート上の該当行が削除されます。
4. スプレッドシートで確認
スプレッドシートのタブに戻ると、指定した文字を含む行が削除されていることが確認できます。
サンプルコードの場合は、B列内に「c」という文字を含む行が削除されています。
以上の手順で、スプレッドシートの指定した文字を含む行をGASを使用して削除できます。
注意点:バックアップ
スプレッドシートからデータを削除する際は、大切なデータを消してしまわないように、事前にスプレッドシートのバックアップを取っておくことをお勧めします。
スプレッドシートの自動バックアップは、Google Apps Script (GAS) を使用して、簡単に実施できます。
自動バックアップの方法について詳しく知りたい方は、以下の記事をご覧ください。
まとめ
Google Apps Script (GAS)を使って、スプレッドシートで特定の文字を含む行を自動で削除する方法をご紹介しました。
GASを使うことで、手間のかかる作業を簡略化し、大量のデータを素早く処理することができます。
ぜひ活用してみてください!
Google Apps Script(GAS)で指定の列から特定の単語の行を削除する自動化や、特定の文字を含むセルの自動削除に興味がある方は、ぜひこちらもご覧ください!
また、特定の文字を含む行の色変更の自動化に興味がある方は、こちらもご覧ください!
コメント