GASでスプレッドシートに書式を配列に設定するには「setNumberFormats(numberFormats)
」を利用する。
setNumberFormats(numberFormats)
数値形式または日付形式の長方形グリッドを設定します(この範囲のディメンションと一致する必要があります)。値は、Sheets API ドキュメントで説明されている形式パターン文字列です。
https://developers.google.com/apps-script/reference/spreadsheet/range#setnumberformatsnumberformats
スプレッドシートに書式を配列に設定するGAS実行の様子
setNumberFormats(numberFormats) メソッドを利用して、スプレッドシートに書式を配列に設定するGASを実行してみました。
setNumberFormats(numberFormats)を実行することで、
- セルの値を任意の書式に設定
- 配列で複数セルの書式設定
といったことが実現できます
注意!setNumberFormat()メソッドでは配列で、書式設定は不可能です。
スプレッドシートで数式を設定する場合は、以下記事を御覧ください。
スプレッドシートに書式を配列に設定するGAS
function numberFormats(){
//SpreadsheetAppを起動
let ss = SpreadsheetApp.getActiveSpreadsheet();
//0番目のシートを取得
let sht = ss.getSheets()[0];
//シートコンテンツと書式をクリア
sht
.clear()
.clearContents()
.clearFormats();
//繰り返しで3行目までコンテンツを適当に設置
for(let i=1;i<=3;i++){
sht.getRange(i,1).setValue(i);
sht.getRange(i,2).setValue(i+5);
}
//書式設定をするか確認
const yesno = Browser.msgBox("数値の書式を変更しますか?",Browser.Buttons.YES_NO);
//もしYESなら
if(yesno == "yes"){
//各書式をformatに格納
let format1 = "0.0";
let format2 = "0分";
let format3 = "0秒";
let format4 = "0%";
let format5 = "0時間";
let format6 = "0日";
//formatを配列に格納
const formats = [
[format1,format2],
[format3,format4],
[format5,format6],
];
//■setNumberFormatsで配列に書式を設置
sht.getRange(1,1,3,2).setNumberFormats(formats);
}else{
//Noなら作業しなかった旨を掲載
Browser.msgBox("書式は変更しませんでした");
}
}
setNumberFormats(numberFormats) のパラメーター
名前 | 型 | 説明 |
---|---|---|
numberFormats | Object[][] | 数値形式の2次元配列。 |
setNumberFormats(numberFormats) の戻り値
Range - チェーン用の範囲。
スプレッドシートに書式を配列に設定するまとめ
GAS×スプレッドシートに書式を配列に設定するならsetNumberFormats(numberFormats)
メソッドを利用しましょう。