Home » Googleスプレッドシートの使い方 » Google Apps Scriptで時間・時刻の表示形式を設定する

Google Apps Scriptで時間・時刻の表示形式を設定する

対象:Googleスプレッドシート&Google Apps Script

「google apps 24時間表示の書式」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。

Googleスプレッッドシートのセルに、時間・時刻データが入力されているとき、GAS(Google Apps Script)から、24時間表示の書式を設定するコードを探している方による検索です。

[スポンサードリンク]

時間・時刻の表示形式を設定するサンプルスクリプト

さまざまな時間・時刻の表示形式を設定する、サンプルスクリプトをご紹介しておきましょう。

function sample_set_TimeFormat(){

 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 Apps Scriptで時間・時刻の表示形式を設定する

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セルを見比べれば、違いは一目瞭然です。

Google Apps Scriptで時間・時刻の表示形式を設定する

「[h]:mm:ss」と「h:mm:ss」の違いは、24時間を超えたときにどう表示するか、です。

「[h]:mm:ss」と指定すれば、24時間を超えた時間の場合に「25:12:00」といった表示になるのはExcelのユーザー定義書式と同じです。

Range.setNumberFormat()メソッドの引数をどう指定するのかは、メニュー[表示形式]-[数字]-[表示形式の詳細設定]-[その他の日付や時刻の形式]から書式を設定して、

Google Apps Scriptで時間・時刻の表示形式を設定する

Range.getNumberFormat()メソッドで表示形式を取得してみればヒントを得られるでしょう。

関連語句
時間フォーマット

[スポンサードリンク]

Home » Googleスプレッドシートの使い方 » Google Apps Scriptで時間・時刻の表示形式を設定する

「Googleスプレッドシートの使い方」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.