次の方法で共有


Excel JavaScript API を使用して範囲内の文字列を検索する

この記事では、Excel JavaScript API を使用して範囲内の文字列を検索するコード サンプルを提供します。 オブジェクトがサポートする Range プロパティとメソッドの完全な一覧については、「 Excel.Range クラス」を参照してください。

注:

Excel JavaScript API には、"Cell" オブジェクトまたはクラスがありません。 代わりに、Excel JavaScript API はすべての Excel セルを Range オブジェクトとして定義します。 Excel UI の個々のセルは、Excel JavaScript API の 1 つのセルを持つ Range オブジェクトに変換されます。 1 つの Range オブジェクトに複数の連続したセルを含めることもできます。 詳しくは、「Excel JavaScript API を使用したセルの操作」を参照してください。

範囲内の文字列と一致する

Range オブジェクトには、範囲内で指定された文字列を検索するための find メソッドがあります。 このメソッドは、一致するテキストがある最初のセルの範囲を返します。

次のコード サンプルは、文字列 Food と等しい値を持つ最初のセルを検索して、そのアドレスをコンソールに記録します。 指定した文字列が範囲に存在しない場合、ItemNotFound エラーが find によってスローされます。 指定した文字列が範囲に存在しない可能性がある場合は、自分のコードで適切にシナリオを処理できるように、findOrNullObject メソッドを使用するようにしてください。

await Excel.run(async (context) => {
    let sheet = context.workbook.worksheets.getItem("Sample");
    let table = sheet.tables.getItem("ExpensesTable");
    let searchRange = table.getRange();
    let foundRange = searchRange.find("Food", {
        completeMatch: true, // Match the whole cell value.
        matchCase: false, // Don't match case.
        searchDirection: Excel.SearchDirection.forward // Start search at the beginning of the range.
    });

    foundRange.load("address");
    await context.sync();

    console.log(foundRange.address);
});

単一のセルを表す範囲に対して find メソッドが呼び出されると、ワークシート全体が検索されます。 検索はその単一のセルから始まり、SearchCriteria.searchDirection によって指定された方向へ行われ、場合によってはワークシートの最終部分で折り返されます。

関連項目