今回の記事では、
GASで空白のセルか、空白の文字列が含まれているかどうかを判定する方法を紹介します。
関連記事
セルが空白かを判定

サンプルデータを用意してみました。
これらのサンプルデータから名前が空白なものを取ってみたいと思います。
function sampleFunction() { var spreadSheet = SpreadsheetApp.getActiveSpreadsheet(); var sheet = spreadSheet.getActiveSheet(); var lastRow = sheet.getLastRow(); for (var i=1; i <= lastRow; i++){ var cell = sheet.getRange(i, 2); //名前 if(cell.isBlank()){ Logger.log(i + "行目の名前が未入力です"); } } } //ログ 2行目の名前が未入力です。
やっている内容としては、空白判定したいセルの情報をとってきて、
isBlank()を呼び出してあげることによって、空白かどうかを判定してくれます。
セルの取得の仕方についてはこちらをご覧ください。
関連記事
空白の文字列が含まれているか判定

次にこのようなサンプルデータを用意してみました。
これらのサンプルデータから半角スペース、全角スペースが含まれているものを取り出してみたいと思います。
function sampleFunction() { var spreadSheet = SpreadsheetApp.getActiveSpreadsheet(); var sheet = spreadSheet.getActiveSheet(); var lastRow = sheet.getLastRow(); for (var i=2; i <= lastRow; i++){ var value = sheet.getRange(i, 1).getValue(); if(value.match(/\s/)){ Logger.log(i + "行目に半角もしくは全角スペースが含まれています。"); } } } //ログ 3行目に半角もしくは全角スペースが含まれています。 4行目に半角もしくは全角スペースが含まれています。
matchという文字列検索の関数を使用することによって、空白を探し出しています。
今回は正規表現ということで\sがスペースを表しています。
スペースを除外したいという場合にはif文の中に文字列置換の関数を書いてあげれば、
空白が除外されるようになります。
function sampleFunction() { var spreadSheet = SpreadsheetApp.getActiveSpreadsheet(); var sheet = spreadSheet.getActiveSheet(); var lastRow = sheet.getLastRow(); for (var i=2; i <= lastRow; i++){ var value = sheet.getRange(i, 1).getValue(); if(value.match(/\s/)){ Logger.log(i + "行目に半角もしくは全角スペースが含まれています。"); sheet.getRange(i, 1).setValue(value.replace(/\s/, "")); } } }
まとめ
- セルの情報をgetRange().getValue()を使って取得
- 空白のセルにはisBlank()
- 空白が含まれているかにはmatch(/\s/)を使う
コメント