メインコンテンツまでスキップ

文字列の置換

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

利用するメソッド

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

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

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

VBA を使用されていた方に注意していただきたいのは、このメソッドの実行によって、元の文字列が変更されることはありません。

あくまでこのメソッドの返り値として、置換後の文字列が返却されます。

元の文字列は変更されない
let target = '朝食にパンを食べました';

let replaced = target.replace('パン', 'ご飯');

console.log(target); // 朝食にパンを食べました
console.log(replaced); // 朝食にご飯を食べました

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

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

サンプルコード

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

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

/** 置換後の文字列 */
const replaced = target.replace('リンゴ', 'バナナ');

console.log(replaced); // 好きな果物はバナナです
}