Skip to content

空白の削除

This content is not available in your language yet.

ここではオフィススクリプトを使って、文字列の前後の空白や、文字列に含まれるすべての空白を削除する方法を、サンプルコードと併せて解説します。

Stringオブジェクトに含まれている、trimメソッドを使用します。

/**
* @return 前後の空白を取り除いた文字列
*/
trim(): string;

trimメソッドは、半角スペースだけでなく、全角スペース・タブ・改行も空白として取り除きます。

const name = '  佐藤 太郎 \n';
console.log(name.trim()); // 佐藤 太郎

文字列の途中にある空白(佐藤と太郎の間)は削除されません。

先頭だけ・末尾だけの空白を削除する

Section titled “先頭だけ・末尾だけの空白を削除する”

先頭だけ、または末尾だけの空白を削除する場合は、replaceメソッドの第一引数に正規表現を指定し、空白を空文字('')に置き換えます。

  • 先頭の空白: /^\s+/(^は文字列の先頭、\s+は 1 文字以上の空白)
  • 末尾の空白: /\s+$/($は文字列の末尾)

以下は先頭の空白を削除する例です。パターンを\s+$に変えると、末尾の空白が対象になることを確かめてみましょう。

Flags

Matches1 match

  リンゴ

  • Used by the method
  • Not used

Resultname.replace(/^\s+/, '')'リンゴ '

    Change the pattern or the string to see what matches and what is returned.

    文字列の途中にある空白も含めて、すべての空白を削除する場合は、空白を表す\sにgフラグを付けた正規表現を指定します。

    gフラグを外すと、最初の 1 箇所だけしか削除されないことを確かめてみましょう。

    Flags

    Matches3 matches

    東京都 千代田区 丸の内 1-1

    • Used by the method
    • Not used

    Resultaddress.replace(/\s/g, '')'東京都千代田区丸の内1-1'

      Change the pattern or the string to see what matches and what is returned.

      すべての空白を削除するサンプル
      const address = '東京都 千代田区 丸の内 1-1';
      console.log(address.replace(/\s/g, '')); // 東京都千代田区丸の内1-1

      連続する空白を 1 つにまとめる

      Section titled “連続する空白を 1 つにまとめる”

      空白の数がそろっていないデータは、/\s+/gで連続する空白をまとめて探し、半角スペース 1 つに置き換えると整えられます。

      Flags

      Matches2 matches

      東京都  千代田区 丸の内

      • Used by the method
      • Not used

      Resultaddress.replace(/\s+/g, ' ')'東京都 千代田区 丸の内'

        Change the pattern or the string to see what matches and what is returned.

        前後の空白も取り除く場合は、trimメソッドと組み合わせます。

        const address = ' 東京都  千代田区 丸の内 ';
        console.log(address.trim().replace(/\s+/g, ' ')); // 東京都 千代田区 丸の内

        セル範囲の空白をまとめて削除する

        Section titled “セル範囲の空白をまとめて削除する”

        選択しているセル範囲について、文字列の前後の空白を削除するサンプルコードです。

        getSelectedRangeメソッドは、複数の範囲を選択している場合や、Power Automate から実行した場合はエラーになります。1 つの範囲を選択してから Excel で実行してください。

        選択範囲の前後の空白を削除するサンプル
        function main(workbook: ExcelScript.Workbook) {
        /** 選択しているセル範囲 */
        const range = workbook.getSelectedRange();
        const values = range.getValues();
        /** 文字列の値だけ前後の空白を取り除いた値 */
        const trimmed = values.map((row) =>
        row.map((value) => (typeof value === 'string' ? value.trim() : value))
        );
        range.setValues(trimmed);
        }

        数値や真偽値のセルは、そのままの値を書き戻しています。