Power Automate Office Scriptでマイナスの数値は赤字、プラスは黒字でExcelに出力する方法

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");
}

コメント

タイトルとURLをコピーしました