Googleスプレッドシートのセルに、先頭が0から始まる電話番号などを入力する と表示形式の問題により先頭の0が消えてしまう。
スプレッドシートのメニュー「表示形式」でセルの書式を「書式なしテキスト」に変更しておくことでこの問題は解消されるのだが、今回はGAS(GoogleAppsScript)で書式の変更をおこなう方法を紹介する。
表示形式をGASで「書式なしテキスト」に設定する
今回の例として、シートAのセルをシートBに転記し、シートBに対して表示形式の設定をおこなっていく。
// コピー範囲取得
const lr = sheetA.getLastRow();
const lc = sheetA.getLastColumn();
let copyRange = sheetA.getRange(2, 1, lr-1, lc);
// コピー範囲の値を取得
let copyValues = copyRange.getValues();
// 表示形式の設定
sheetB.getRange(2, 1, lr-1, lc).setNumberFormat("@");
// 転記
sheetTmp.getRange(2, 1, lr-1, lc).setValues(copyValues);
setNumberFormatメソッドのところがポイント。
表示形式に「@」を設定することで、数値の先頭にある0が消えるのを防ぐことができる。
また、この時の注意として先に表示形式を設定し、後から値を入力する必要がある。
理由としては、先に値が入力されるとその時点で値から先頭の0が消えてしまうため、後から表示形式を設定したところで手遅れとなってしまうためだ。