コンテンツにスキップ

文字列の置換

今回はオフィススクリプトを使って、特定の文字列を別の文字列へ置換する方法と、うまく置換できない場合の注意点をサンプルコードと併せて解説します。

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

VBA ではReplace関数を使用して、対象となる文字列、置換対象の文字列、置き換える文字列の 3 つの引数を指定していたと思いますが、オフィススクリプトでは対象の文字列に対して直接メソッドを実行します。

replaceメソッドの詳細
/**
* @param searchValue 置換対象となる文字列
* @param replaceValue 置き換える文字列
*/
replace(searchValue: string | RegExp, replaceValue: string): string;

特定の文字列を削除したい場合は、第二引数に空文字('')を指定します。

第一引数には正規表現を指定することもできます。

正規表現のgフラグを切り替えると、置き換わる箇所が変わることを確かめられます。

フラグ

一致した箇所2 箇所

リンゴとリンゴ

  • メソッドが使う一致
  • 使われない一致

結果target.replace(/リンゴ/, 'バナナ')'バナナとリンゴ'

  • g フラグがないため、置き換わるのは最初の 1 箇所だけです(ほかに 1 箇所一致しています)。

パターンや文字列を変えて、一致する箇所と結果を確かめてみましょう。

対象となる文字列を指定し、置換結果を別の変数に格納するサンプルコードです。

文字列の置換のサンプル
function main(workbook: ExcelScript.Workbook) {
/** 対象文字列 */
const target = '好きな果物はリンゴです';
/** 置換後の文字列 */
const replaced = target.replace('リンゴ', 'バナナ');
console.log(replaced); // 好きな果物はバナナです
}