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が消えてしまうため、後から表示形式を設定したところで手遅れとなってしまうためだ。