セル範囲を操作する

【GAS】スプレッドシートに書式を配列に設定する

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】スプレッドシートに数式を設定する

スプレッドシートに書式を配列に設定する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) のパラメーター

名前説明
numberFormatsObject[][]数値形式の2次元配列。
setNumberFormats(numberFormats) のパラメーター

setNumberFormats(numberFormats) の戻り値

Range - チェーン用の範囲。

スプレッドシートに書式を配列に設定するまとめ

GAS×スプレッドシートに書式を配列に設定するならsetNumberFormats(numberFormats) メソッドを利用しましょう。

関連記事:【GAS】スプレッドシートに数式を設定する

関連記事:【GAS】スプレッドシートで数式を複数設定する

関連記事:【GAS】スプレッドシートで数式をR1C1形式で設定する

関連記事:【GAS】スプレッドシートで数値・日付を指定した書式に設定する

-セル範囲を操作する