「google apps 24時間表示の書式」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。
Googleスプレッッドシートのセルに、時間・時刻データが入力されているとき、GAS(Google Apps Script)から、24時間表示の書式を設定するコードを探している方による検索です。
時間・時刻の表示形式を設定するサンプルスクリプト
さまざまな時間・時刻の表示形式を設定する、サンプルスクリプトをご紹介しておきましょう。
var bk = SpreadsheetApp.getActiveSpreadsheet();
var sh = bk.getActiveSheet();
// adding sample data & formulas in column A
sh.getRange(1, 1).setValue(0.789);
for(var i=3; i<=6; i++){
sh.getRange(i, 1).setFormulaR1C1('=R1C1');
}
// setting time format to A3:A6
sh.getRange("A3").setNumberFormat("[h]:mm:ss");
sh.getRange("A4").setNumberFormat("h:mm:ss");
sh.getRange("A5").setNumberFormat("h:mm:ss am/pm");
sh.getRange("A6").setNumberFormat("h:mm:ss a/p");
上記のスクリプトを実行すると、アクティブなシートのA1セルに「0.789」というデータ、A3:A6セルにはそのA1セルを参照するだけの「=$A$1」という数式がそれぞれ入力され、A3:A6セルにさまざまな時間・時刻の表示形式が設定されます。
Googleスプレッドシートが英語モードの場合、上図のような表示になるはずです。
サンプルスクリプトの解説
「google apps 24時間表示の書式」
という検索をした方には、A3セル・A4セルの表示形式を設定している、
sh.getRange("A3").setNumberFormat("[h]:mm:ss");
sh.getRange("A4").setNumberFormat("h:mm:ss");
が参考になるでしょう。
Range.setNumberFormat()メソッドの引数に「[h]:mm:ss」あるいは「h:mm:ss」といった文字列を指定すれば、24時間表示にすることができます。
上記のスクリプトを実行した直後だと、A3セルとA4セルには同じ表示が行われるため、「[h]:mm:ss」と「h:mm:ss」の違いがわからないかもしれません。
ですがA1セルの値を、例えば「1.05」にしてA3セルとA4セルを見比べれば、違いは一目瞭然です。
「[h]:mm:ss」と「h:mm:ss」の違いは、24時間を超えたときにどう表示するか、です。
「[h]:mm:ss」と指定すれば、24時間を超えた時間の場合に「25:12:00」といった表示になるのはExcelのユーザー定義書式と同じです。
Range.setNumberFormat()メソッドの引数をどう指定するのかは、メニュー[表示形式]-[数字]-[表示形式の詳細設定]-[その他の日付や時刻の形式]から書式を設定して、
Range.getNumberFormat()メソッドで表示形式を取得してみればヒントを得られるでしょう。
Home » Googleスプレッドシートの使い方 » Google Apps Scriptで時間・時刻の表示形式を設定する