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 を使用したセルの操作」を参照してください。

値または数式を設定する

次のコード サンプルでは、1 つのセルまたはセル範囲の値と数式を設定します。

1 つのセルの値を設定する

次のコード サンプルでは、セル C3 の値を "5" に設定し、データに最も適した列の幅を設定します。

await Excel.run(async (context) => {
    let sheet = context.workbook.worksheets.getItem("Sample");

    let range = sheet.getRange("C3");
    range.values = [[ 5 ]];
    range.format.autofitColumns();

    await context.sync();
});

セルの値が更新される前のデータ

セル値が更新される前の Excel のデータ。

セルの値が更新された後のデータ

セル値が更新された後の Excel のデータ。

複数のセルの範囲の値を設定する

次のコード サンプルでは、範囲 B5:D5 のセルの値を設定し、データに最も適した列の幅を設定します。

await Excel.run(async (context) => {
    let sheet = context.workbook.worksheets.getItem("Sample");

    let data = [
        ["Potato Chips", 10, 1.80],
    ];

    let range = sheet.getRange("B5:D5");
    range.values = data;
    range.format.autofitColumns();

    await context.sync();
});

複数のセルの値が更新される前のデータ

セル値が更新される前の Excel のデータ。

複数のセルの値が更新された後のデータ

セル値が更新された後の Excel のデータ。

1 つのセルの数式を設定する

次のコード サンプルでは、セル E3 の数式を設定し、データに最も適した列の幅を設定します。

await Excel.run(async (context) => {
    let sheet = context.workbook.worksheets.getItem("Sample");

    let range = sheet.getRange("E3");
    range.formulas = [[ "=C3 * D3" ]];
    range.format.autofitColumns();

    await context.sync();
});

セルの数式が設定される前のデータ

セル数式が設定される前の Excel のデータ。

セルの数式が設定された後のデータ

セルの数式が設定された後の Excel のデータ。

セルの範囲の数式を設定する

次のコード サンプルでは、範囲 E2:E6 のセルの数式を設定し、データに最も適した列の幅を設定します。

await Excel.run(async (context) => {
    let sheet = context.workbook.worksheets.getItem("Sample");

    let data = [
        ["=C3 * D3"],
        ["=C4 * D4"],
        ["=C5 * D5"],
        ["=SUM(E3:E5)"]
    ];

    let range = sheet.getRange("E3:E6");
    range.formulas = data;
    range.format.autofitColumns();

    await context.sync();
});

複数のセルの数式が設定される前のデータ

セル数式が設定される前の Excel のデータ。

複数のセルの数式が設定された後のデータ

セルの数式が設定された後の Excel のデータ。

値、テキスト、または数式を取得する

これらのコード サンプルは、セル範囲から値、テキスト、数式を取得します。

セルの範囲から値を取得する

次のコード サンプルでは、 範囲 B2:E6 を取得し、そのプロパティを values 読み込み、値をコンソールに書き込みます。 範囲の プロパティは values 、セルに含まれる生の値を指定します。 範囲内の一部のセルに数式が含まれている場合でも、 values 範囲のプロパティは、数式ではなく、それらのセルの生の値を指定します。

await Excel.run(async (context) => {
    let sheet = context.workbook.worksheets.getItem("Sample");

    let range = sheet.getRange("B2:E6");
    range.load("values");
    await context.sync();

    console.log(JSON.stringify(range.values, null, 4));
});

範囲内のデータ (列 E の値は数式の結果)

セルの数式が設定された後の Excel のデータ。

range.values (上記のコード サンプルによりコンソールに記録される)

[
    [
        "Product",
        "Qty",
        "Unit Price",
        "Total Price"
    ],
    [
        "Almonds",
        2,
        7.5,
        15
    ],
    [
        "Coffee",
        1,
        34.5,
        34.5
    ],
    [
        "Chocolate",
        5,
        9.56,
        47.8
    ],
    [
        "",
        "",
        "",
        97.3
    ]
]

セルの範囲からテキストを取得する

次のコード サンプルでは、範囲 B2:E6 を取得し、そのプロパティを text 読み込み、コンソールに書き込みます。 範囲の プロパティは text 、範囲内のセルの表示値を指定します。 範囲内の一部のセルに数式が含まれている場合でも、 text その範囲のプロパティは、数式ではなく、それらのセルの表示値を指定します。

await Excel.run(async (context) => {
    let sheet = context.workbook.worksheets.getItem("Sample");

    let range = sheet.getRange("B2:E6");
    range.load("text");
    await context.sync();

    console.log(JSON.stringify(range.text, null, 4));
});

範囲内のデータ (列 E の値は数式の結果)

セルの数式が設定された後の Excel のデータ。

range.text (上記のコード サンプルによりコンソールに記録される)

[
    [
        "Product",
        "Qty",
        "Unit Price",
        "Total Price"
    ],
    [
        "Almonds",
        "2",
        "7.5",
        "15"
    ],
    [
        "Coffee",
        "1",
        "34.5",
        "34.5"
    ],
    [
        "Chocolate",
        "5",
        "9.56",
        "47.8"
    ],
    [
        "",
        "",
        "",
        "97.3"
    ]
]

セルの範囲から数式を取得する

次のコード サンプルでは、範囲 B2:E6 を取得し、そのプロパティを formulas 読み込み、コンソールに書き込みます。 範囲のプロパティは formulas 、数式を含む範囲内のセルの数式と、数式を含まない範囲内のセルの生の値を指定します。

await Excel.run(async (context) => {
    let sheet = context.workbook.worksheets.getItem("Sample");

    let range = sheet.getRange("B2:E6");
    range.load("formulas");
    await context.sync();

    console.log(JSON.stringify(range.formulas, null, 4));
});

範囲内のデータ (列 E の値は数式の結果)

セルの数式が設定された後の Excel のデータ。

range.formulas (上記のコード サンプルによりコンソールに記録される)

[
    [
        "Product",
        "Qty",
        "Unit Price",
        "Total Price"
    ],
    [
        "Almonds",
        2,
        7.5,
        "=C3 * D3"
    ],
    [
        "Coffee",
        1,
        34.5,
        "=C4 * D4"
    ],
    [
        "Chocolate",
        5,
        9.56,
        "=C5 * D5"
    ],
    [
        "",
        "",
        "",
        "=SUM(E3:E5)"
    ]
]

関連項目