Power AutomateからOffice Script経由でExcelに整数を出力する際、「マイナスの数字だけ赤字にしたい」という要望をいただいたので方法をメモ。
やりたいこと
例えば、画像のような「整数配列を受け取り順次Excelに出力する」スクリプトがあるとき、


これをPower Automateから呼び出すと、


こんな感じでExcelに整数が出力される。


今回はこの出力された数字に対し「マイナスの場合は赤字、プラスの場合は黒字」と文字色を指定してみる。
方法:setNumberFormat関数を使用
ExcelのフォーマットをOffice Scriptから指定するときはsetNumberFormat関数を使用する。
今回のように「マイナスの場合は赤字にする」といった指定をする際は、出力したセル範囲に対し画像のようにフォーマットを指定すれば、


マイナスの数字は文字色が赤になる。


文字色を変える以外にも、「0.0」といった指定をすると小数点での表示も指定できたりするので、他にも色々と細かな操作ができそう。


function main(workbook: ExcelScript.Workbook, numbers: number[]): void {
if (!numbers || numbers.length === 0) return;
const sheet = workbook.getActiveWorksheet();
// A列1行目を起点に、配列長ぶんの縦範囲を確保
const startCell = sheet.getRange("A1");
const writeRange = startCell.getResizedRange(numbers.length - 1, 0);
// Office Scriptsは2次元配列でsetValuesする
const values: (number | string | boolean)[][] = numbers.map(n => [n]);
writeRange.setValues(values);
// マイナスの場合は赤字にする
writeRange.setNumberFormat("0;[Red]-0");
}
コメント