earthpg:GAS専門のプログラミングスクール

GASで簡単実装!配列・セル・文字列の空白判定テクニック

GASで配列やセルの空白をどうやって判定するんだろう?見落としてエラーが出たりして困ってるんだけど…
猫男
猫男
catman
catman
ふむ、GASの空白判定についてはcatmanが手助けしよう。簡単に実装できるテクニックを知れば、もうエラーに悩まされることはないさ。

GASにおける空白の基本判定

まず、空白を判定する基本的な方法を理解しておこう。

GASでセルの空白を判定する

GASを使用してスプレッドシートでセルが空白かどうかを判定するには、以下の手順を試してみよう。

function isCellEmpty(sheet, row, column) {
  var cellValue = sheet.getRange(row, column).getValue();
  return cellValue === '';
}

// 使用例
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var result = isCellEmpty(sheet, 1, 1);
Logger.log(result); // セルが空であれば true、値があれば false を返す

SpreadsheetApp.getActiveSpreadsheet() はアクティブなスプレッドシートを取得する。
getRange(row, column) は指定した行と列番号のセルを取得する。
getValue() はそのセルの値を取得し、空白を判定する。

GASで配列の空白を判定する

配列やリスト内に空文字列 (“”) があるかどうかを確認する際の一例だ。

function isArrayEmpty(arr) {
  return arr.length === 0 || arr.every(function(element) {
    return element === '';
  });
}

// 使用例
var array = ['', ''];
var result = isArrayEmpty(array);
Logger.log(result); // 配列が全て空白か、空なら true を返す

arr.every() メソッドは、コールバック関数がすべての要素に対して true を返す場合に true を返す。

文字列の空白を判定する方法

文字列がただの空白であるかを確認する方法も非常に重要だ。

GASで文字列の空白判定

文字列が本当に空白かどうか確認するなら、下記の方法を用いる。

function isStringBlank(str) {
  return str.trim() === '';
}

// 使用例
var text = '    ';
var result = isStringBlank(text);
Logger.log(result); // 空白のみの文字列なら true を返す

str.trim() は文字列から前後のホワイトスペースを除去する。
– 結果が空文字列であるかどうかで真偽を判定する。

空白を判定するのは意外と簡単なんだね!これでGASでの空白エラーに備えられるかも。
猫男
猫男
catman
catman
そうだろう?GASを活用してもっと賢くプロジェクトを進めるよう、君のスキルを磨いていってほしい。

練習問題:空白判定チャレンジ

ここで理解を深めるための練習問題を用意した。

1. 指定された範囲(例:A1:D4)がすべて空白かどうかを判定する関数を作成しなさい。
2. 複数の単語が入った文字列から、空白の数を数える関数を作成しなさい。

解答・解説

function isRangeEmpty(sheet, rangeA1) {
  var range = sheet.getRange(rangeA1);
  var values = range.getValues();
  for (var i = 0; i < values.length; i++) {
    for (var j = 0; j < values[i].length; j++) {
      if (values[i][j] !== '') return false;
    }
  }
  return true;
}

// 使用例
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var result1 = isRangeEmpty(sheet, 'A1:D4');
Logger.log(result1); // すべてのセルが空白なら true を返す

function countSpaces(str) {
  return (str.split(' ').length - 1);
}

// 使用例
var text = 'GAS は便利 だが 少し 難しい';
var result2 = countSpaces(text);
Logger.log(result2); // 結果は 3

getRange() メソッドを使って範囲を指定し、getValues() でその範囲の値を二次元配列として取得します。
- 文字列の空白を数える際は split() メソッドを利用して空白で分割し、その配列長を利用してカウントします。