非IT企業に勤める中年サラリーマンのIT日記

非IT企業でしかもITとは全く関係ない部署にいる中年エンジニア。唯一の趣味がプログラミングという”自称”プログラマー。

Googleスプレッドシートの日付データをGASで日付データとして扱う方法

   

Googleスプレッドシートのセルに日付データが入っていたとして、それをGoogle Apps Script(GAS)で受け取ったとしても日付として認識してくれません。あくまで文字列として認識します。

例えば以下のようにA1セルに日付データが入っていたとして…、

GASでこのように受け取って、getYear()で年データを抽出するとしましょう。

//間違っている例
function myFunction() {
  var mySheet = SpreadsheetApp.getActiveSheet();
  var dt = mySheet.getRange(1,1).getValues();
  Browser.msgBox(dt.getYear());
}
 

 

これを実行するとこのように怒られます。文字列にgetYear()メソッドが存在しないからですね。

[ad#top-1]

 

では、どのようにやればGAS側で日付データとして扱えるかというと、Dataクラスに突っ込んでやればOKなのです。

//正解
function myFunction() {
  var mySheet = SpreadsheetApp.getActiveSheet();
  var dt_s = mySheet.getRange(1,1).getValues();
  var dt = new Date(dt_s); //これでOK
  Browser.msgBox(dt.getYear());
}
 

 

年データを抽出することができました。ちゃんと日付データとして認識してくれています。

[ad#ad-1]

スポンサーリンク

 - Google Apps Script, Google Dirve