JavaScript API を使用して範囲の値、テキスト、または数式を設定Excel取得する

この記事では、JavaScript API を使用して範囲の値、テキスト、または数式を設定および取得するExcelします。 オブジェクトがサポートするプロパティとメソッドの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:E6values を取得し、プロパティを読み込み、コンソールに値を書き込みます。 範囲 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:E6text を取得し、プロパティを読み込み、コンソールに書き込みます。 範囲 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:E6formulas を取得し、プロパティを読み込み、コンソールに書き込みます。 範囲 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)"
    ]
]

関連項目