Google Apps Script (GAS) でこのセル範囲のセルの数値や日時の形式・フォーマットを取得・設定する方法を説明します。
Rangeクラスのメソッドを利用した手順について説明します。
Google Apps Scriptの基本的な使い方については下記をご覧ください。
GASによるスプレッドシート操作の概要
GASでスプレッドシートを操作するための「SpreadSheetサービス」は、主に下記のクラスで構成されています。
クラス | 説明 |
---|---|
SpreadSheetApp | SpreadSheetサービスの親クラス |
Spreadsheet | スプレッドシートを操作するクラス |
Sheet | シートを操作するクラス |
Range | セル範囲を操作するクラス |
それぞれ下記のような位置付けになります。
「SpreadSheetApp」→「SpreadSheet」→「Sheet」→「Range」という順の階層構造になっています。操作対象に応じて、下の階層にたどってオブジェクトを取得して利用します。
このページでは、上記の中のRangeクラスの下記のメソッドについて説明します。
メソッド | 戻り値 | 説明 |
---|---|---|
getNumberFormat() | String | このセル範囲の左上セルの数値や日時の形式を取得する |
getNumberFormats() | String[][] | このセル範囲のセルの数値や日時の形式を配列で一括取得する |
setNumberFormat(numberFormat) | Range | このセル範囲のセルの数値や日時の形式を一括設定する |
setNumberFormats(numberFormats) | Range | このセル範囲のセルの数値や日時の形式を配列で一括設定する |
数値や日時の形式の概要
スプレッドシートでは、数値や日時の形式を決められた記号を利用してカスタマイズできます。
メソッドの使用方法の説明の前に、数値や日時の形式を指定するための記号について説明します。
数値の形式を指定する記号
数値の形式をカスタマイズするための記号には下記があります。
記号 | 説明 |
---|---|
# | 数値の1桁表示します。数値が無い桁がある場合はその桁は表示しません。 |
0 | 数値を1桁表示します。数値が無い桁がある場合は0で埋めます。 |
? | 数値を1桁表示します。数値が無い桁がある場合はスペースで埋めます。 |
. | 小数点を表示します。 |
% | 数値に100 を掛けた値にして”%”を表示します。 |
, | (#,0,?)の間にある場合は3桁毎にカンマを入れます。 数字の後にある場合は、カンマの数毎に3桁縮められます。 |
E- | 指数表記で表示します。大文字(E)で表示します。 |
E+ | 指数表記で表示します。大文字(E)で表示します。 |
e- | 指数表記で表示します。小文字(e)で表示します。 |
e+ | 指数表記で表示します。小文字(e)で表示します。 |
/ | (#,0,?)の間に入れることで分数として表示します。分母の数を固定することもできます。 |
\ | 次の1文字を文字として付与できます。(例:「\#」として、”#”と表示) |
“任意の文字列” | 任意の文字列を文字として付与できます。(例:「”###”」として、”###”と表示) |
@ | セルの内容をそのまま表示します。 |
■数値形式の使用例
数値形式の使用例です。
入力数値 | 指定する形式 | 表示 |
---|---|---|
12.34 | 000.000 | 012.340 |
12.34 | ###.### | 12.34 |
12.34 | ???.??? | 12.34 |
0.24 | % | 24% |
10000000 | 10,000 | #,#, |
12.25 | # #/# | 12 1/4 |
12.25 | # #/8 | 12 2/8 |
1234500000 | 1.23e+09 | 0.00e+00 |
日時の形式を指定する記号
日時の形式をカスタマイズするための記号には下記があります。
記号 | 説明 |
---|---|
y | 年を表示します。2桁で表示します。 |
yy | 年を表示します。2桁で表示します。yと同じです。 |
yyy | 年を表示します。4桁で表示します。 |
yyyy | 年を表示します。4桁で表示します。yyyと同じです。 |
M | 月を表示します。1桁の場合は1桁で表示します。 |
MM | 月を表示します。1桁の場合は0を頭につけます。 |
mmm | 月を表示します。”月”を含みます。 |
mmmm | 月を完全な名前を表示します。日本語では影響を受けずmmmと同じです。 |
mmmmm | 月を表示します。”月”を含まず、数字のみです。 |
d | 日付を表示します。1桁の場合は1桁で表示します。 |
dd | 日付を表示します。1桁の場合は0を頭につけます。 |
ddd | 曜日を表示します。”曜日”を含まず、1文字で表示します。 |
dddd | 曜日を表示します。”曜日”を含め、3文字で表示します。 |
h | 時間を表示します。1桁の場合は1桁で表示します。 |
hh | 時間を表示します。1桁の場合は0を頭につけます。 |
m | 分を表示します。ただし、前に時間または後に秒が必要です。1桁の場合は1桁で表示します。 |
mm | 分を表示します。ただし、前に時間または後に秒が必要です。1桁の場合は0を頭につけます。 |
s | 秒を表示します。1桁の場合は1桁で表示します。 |
ss | 秒を表示します。1桁の場合は0を頭につけます。 |
0 | ミリ秒を表示します。ただし、前に秒が必要です 。0は3桁まで指定できます。 |
a/p | 日本語では、午前も午後も”午”と表示されるため利用できません。 |
am/pm | “午前”か”午後”を表示します。 |
[h] | 経過時間(時間)を表示します。hの数だけ0を頭につけます。 |
[m] | 経過時間(分)を表示します。mの数だけ0を頭につけます。 |
[s] | 経過時間(秒)を表示します。sの数だけ0を頭につけます。 |
\ | 次の1文字を文字として付与できます。(例:「m\ms\s」として、”5m12s”と表示) |
”任意の文字列” | 任意の文字列を文字として付与できます。(例:「mmmd”日現在”」として、”3月2日現在”と表示) |
■日時形式の使用例
日時形式の使用例です。
入力日時 | 指定する形式 | 表示 |
---|---|---|
2023/3/4 5:8:5.123 | yy/M/d h:m:s.0 | 23/3/4 5:8:5.1 |
2023/3/4 5:8:5.123 | yyyy/MM/dd hh:mm:ss.000 | 2023/03/04 05:08:05.123 |
2023/3/4 5:8:5.123 | yyyy年MM月dd日 hh時mm分 | 2023年03月04日 05時08分 |
2023/3/4 5:8:5.123 | am/pm hh:mm | 午前 05:08 |
1:10:22 | [hh]:mm:ss | 01:10:22 |
1:10:22 | [mm]:ss | 70:22 |
このセル範囲のセルの数値や日時の形式を取得する
このセル範囲のセルの数値や日時の形式を取得するメソッドを説明します。
このセル範囲の左上セルの数値や日時の形式を取得する:getNumberFormat()
このセル範囲の左上セルの数値や日時の形式を取得する方法です。
下記のように実行します。
1 2 3 4 5 6 |
function myFunction() { const testSpreadSheet = SpreadsheetApp.getActiveSpreadsheet(); const testSheet = testSpreadSheet.getSheetByName("シート1"); const testRange = testSheet.getRange("B2:C3"); console.log(testRange.getNumberFormat()); } |
下記のファイルで実行してみます。
下記のような実行結果になります。左上セルの数値や日時の形式を取得できます。
1 |
yyyy年mm月dd日 |
このセル範囲のセルの数値や日時の形式を配列で一括取得する:getNumberFormats()
このセル範囲のセルの数値や日時の形式を一括取得する方法です。
下記のように実行します。
1 2 3 4 5 6 |
function myFunction() { const testSpreadSheet = SpreadsheetApp.getActiveSpreadsheet(); const testSheet = testSpreadSheet.getSheetByName("シート1"); const testRange = testSheet.getRange("B2:C3"); console.log(testRange.getNumberFormats()); } |
下記のファイルで実行してみます。
下記のような実行結果になります。セルの数値や日時の形式を配列で一括取得できます。
1 2 |
[ [ 'yyyy年mm月dd日', 'yyyy/mm/dd hh:mm:ss' ], [ 'yyyy年mm月dd日 dddd', 'yyyy/m/d(ddd) hh:mm:ss ' ] ] |
このセル範囲のセルの数値や日時の形式を設定する
このセル範囲のセルの数値や日時の形式を設定するメソッドを説明します。
このセル範囲のセルの数値や日時の形式を一括設定する:setNumberFormat(numberFormat)
このセル範囲のセルの数値や日時の形式を一括設定する方法です。
下記のように実行します。
1 2 3 4 5 6 |
function myFunction() { const testSpreadSheet = SpreadsheetApp.getActiveSpreadsheet(); const testSheet = testSpreadSheet.getSheetByName("シート1"); const testRange = testSheet.getRange("B2:C3"); testRange.setNumberFormat("hh時mm分ss秒"); } |
下記のファイルで実行してみます。
下記のような実行結果になります。セルの数値や日時の形式を一括設定できます。
このセル範囲のセルの数値や日時の形式を配列で一括設定する:setNumberFormats(numberFormats)
このセル範囲のセルの数値や日時の形式を配列で一括設定する方法です。
下記のように実行します。
1 2 3 4 5 6 |
function myFunction() { const testSpreadSheet = SpreadsheetApp.getActiveSpreadsheet(); const testSheet = testSpreadSheet.getSheetByName("シート1"); const testRange = testSheet.getRange("B2:C3"); testRange.setNumberFormats([["hh時mm分ss秒", "dddd"], ["yy-mm-dd", "yy-mm-dd hh:mm:ss"]]); } |
下記のファイルで実行してみます。
下記のような実行結果になります。セルの数値や日時の形式を配列で一括設定できます。
まとめ
Google Apps Script (GAS) でこのセル範囲のセルの数値や日時の形式を取得・設定する方法を説明しました。
GASは無料で利用できてとても便利なツールです。
Googleスプレッドシート等のGoogleアプリケーションを利用されている方は、GASを習得することで作業を大きく効率化できます。
GASの基本構文を知りたい方は、下記もご覧ください。