皆さん、何月何日って、何曜日だっけ?
と、思うことありますよね。検索で日付を入れれば、確かに曜日も教えてくれますが、GASでも可能だったります。
例えば、スプレッドシートの指定したセルに記載されている日付を元に、その隣に、曜日を記入するスクリプトを書いてみます。
(まずは、曜日表示させるための、数字までやってみます。)
目次
今回の目標
スプレッドシートに記載している日付をクリック(セルが選択された状態)してから、
⇒実行(Ctrl+R)。。。
下記の様な表示 ↓↓↓↓
実現のスクリプトと解説
下記をコンテナバインドスクリプトのスクリプトエディターにコピペして、保存(Ctrl+S)⇒
スプレッドシートに記載している日付をクリック(セルが選択された状態)してから⇒
スクリプトを実行(Ctrl+R)。。。
【前提】コンテナバインドスクリプトで作成しています。
//ファンクション名を「dayOfWeek」にする(ちなみに、dayOfWeekの部分は、何でも良いです)
function dayOfWeek(){
//スプレッドシートの「アクティブなスプレッドシート全体」を取得し、それを「ss」に代入
var ss = SpreadsheetApp.getActiveSpreadsheet();
//「ss(アクティブなスプレッドシート全体)」の「アクティブなシートだけ」を「sheet」に代入
var sheet = ss.getActiveSheet();
//「sheet(アクティブなシート)」の「現在選択している(カーソルがあっている)セル」を「activeCell」に代入
var activeCell = sheet.getActiveCell();
//日付情報を扱うDateクラスを用いて「activeCell(現在選択している(カーソルがあっている)セル)」に記載されている日付を取得し、その日付から曜日(曜日番号)を取得し、その曜日(曜日番号)を「dayNum」に代入
var dayNum = new Date(activeCell.getValue()).getDay();
//「activeCell(現在選択している(カーソルがあっている)セル)」の場所から「0」=現状の行で、「1」=1つ隣のセルに、「dayNum(曜日番号)」を入れなさい。
activeCell.offset(0, 1).setValue(dayNum);
}
どうでしょうか?スプレッドシートに「0」~「6」が表示されましたでしょうか?
数字の意味合いとしては、日曜日が「0」で、土曜日が「6」です。
※なので、曜日の番号に「7」はありません。
まとめ
今回のスクリプトの中で一番重要なのは、日付情報を扱うDateクラスを用いて、アクティブなセルから日付を取り出し、その日付から.getDay()で曜日(曜日番号)を取得することができるというところです。
では、次は、その曜日番号から、曜日に変換してみましょう。