スプレッドシートの書式設定をいかしたままコピーしてその範囲に0をセットしたい時にどうする問題


お題

  • スプレッドシートのある範囲に数値が入力されている。

  • 単位は%で書式設定されている。

  • このスプレッドシートをコピーして、入力箇所を全て0%にしたい。

入力箇所は画像のB列だと仮定して、考えてみる。

解決の方向性

  • 範囲を指定して、そこに0をセットする。

  • 0でなくて、値をクリアして良いのなら clearContent(); でも良い。


コード例

シートのコピーは省略。

//GAS上でrange指定
function test01({
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('シート1');
  const range = sheet.getRange('B2:B6');
  range.setValue(0);
}
//名前付き範囲を利用
function test02({
  const namedRanges = SpreadsheetApp.getActiveSpreadsheet().getNamedRanges();
  namedRanges.forEach(namedRange => {
    if (namedRange.getName().includes("edit")) { namedRange.getRange().setValue(0); }
  });
}
//0の配列を作ってセットする
function test03({
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('シート1');
  const range = sheet.getRange('B2:B6');
  const row = 5, col = 1// 任意の行列数
  const newValues = Array(row).fill(Array(col).fill(0));
  console.log(newValues);//[ [ 0 ], [ 0 ], [ 0 ], [ 0 ], [ 0 ] ]
  range.setValue(newValues);
}


名前付き範囲

getNamedRanges 知らなかった〜



面白いな〜〜

#GAS
#スプレッドシート
#書式
#ノンプロ研

いただいたサポートで、書籍代や勉強費用にしたり、美味しいもの食べたりします!