Excel JavaScript API を使用して動的配列とスピルを処理する
この記事では、Excel JavaScript API を使用して動的配列と範囲スピルを処理するコード サンプルを提供します。 オブジェクトがサポートする Range
プロパティとメソッドの完全な一覧については、「 Excel.Range クラス」を参照してください。
動的配列
一部の Excel 数式では 、動的配列が返されます。 これにより、数式の元のセルの外側にある複数のセルの値が入力されます。 この値オーバーフローは、"スピル" と呼ばれます。 アドインは、 Range.getSpillingToRange メソッドを使用してスピルに使用される範囲を見つけることができます。 *OrNullObject バージョンRange.getSpillingToRangeOrNullObject
もあります。
次の例は、セルに範囲の内容をコピーする基本的な数式を示しています。この数式は、隣接するセルに波及します。 その後、アドインはスピルを含む範囲をログに記録します。
await Excel.run(async (context) => {
let sheet = context.workbook.worksheets.getItem("Sample");
// Set G4 to a formula that returns a dynamic array.
let targetCell = sheet.getRange("G4");
targetCell.formulas = [["=A4:D4"]];
// Get the address of the cells that the dynamic array spilled into.
let spillRange = targetCell.getSpillingToRange();
spillRange.load("address");
// Sync and log the spilled-to range.
await context.sync();
// This will log the range as "G4:J4".
console.log(`Copying the table headers spilled into ${spillRange.address}.`);
});
範囲スピル
Range.getSpillParent メソッドを使用して、特定のセルにスピルするセルを見つけます。 範囲オブジェクトが 1 つのセルである場合にのみ機能します getSpillParent
。 複数のセルを持つ範囲を呼び出 getSpillParent
すと、エラーがスローされます (または の Range.getSpillParentOrNullObject
場合は null 範囲が返されます)。
関連項目
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
Office Add-ins