【営業でも分かる!】指定したセルの日付から曜日取得し、横のセルに記載する方法

前回は、アクティブセルに記載されている日付から、曜日番号を取得し、更に曜日を特定し隣のセルに記載。。。
まで行いました。

まだの方は、まずこちらから御覧ください。

それでは、今回は、『特定のセル(予め指定したセル)の日付 』から、
曜日番号を取得
⇒曜日を特定
⇒それを特定のセルの隣セルに記載
までやってみます。

目次

今回の目標

スクリプト実行前

⇒実行(Ctrl+R)。。。
下記の様な表示 ↓↓↓↓

スクリプト実行後

実現のスクリプトと解説

下記をコンテナバインドスクリプトのスクリプトエディターにコピペして、
保存(Ctrl+S)
⇒スクリプトを実行(Ctrl+R)。。。

【前提】コンテナバインドスクリプトで作成しています。

//ファンクション名を「dayOfWeek3」にする(ちなみに、dayOfWeek2は前回使用したので、dayOfWeek3にしましたが、dayOfWeek3の部分は、何でも良いです)
function dayOfWeek3(){

 //スプレッドシートの「アクティブなスプレッドシート全体」を取得し、それを「ss」に代入
 var ss = SpreadsheetApp.getActiveSpreadsheet();

 //「ss(アクティブなスプレッドシート全体)」の「アクティブなシートだけ」を「sheet」に代入
 var sheet = ss.getActiveSheet();

  //D2(指定するセルの範囲)を取得し、activeCellに代入
  var activeCell = sheet.getRange("D2");

 //曜日を表す文字列を持った配列を「allDayOfWeek」に代入)
 var allDayOfWeek = ['日', '月', '火', '水', '木', '金', '土'];

 //日付情報を扱うDateクラスを用いて「activeCell(A1のセル)」に記載されている日付を取得し、その日付から曜日(曜日番号)を取得し、その曜日(曜日番号)を「dayNum」に代入
 var dayNum = new Date(activeCell.getValue()).getDay();

 //「activeCell(A1のセル)」の場所から「0」=現状の行で、「1」=1つ隣のセルに、「dayNum(曜日番号)」を入れなさい。
 activeCell.offset(0, 1).setValue(allDayOfWeek[dayNum]+'曜日');
}

どうでしょうか?スプレッドシートに「○曜日」が表示されましたでしょうか?

まとめ

今回のスクリプトでは、

//「sheet(アクティブなシート)」の「現在選択している(カーソルがあっている)セル」を「activeCell」に代入
var activeCell = sheet.getActiveCell();

を、下記に変更して指定したセルの範囲に変えました。

//D2(指定するセルの範囲)という範囲をactiveCellに代入
var activeCell = sheet.getRange("D2");

こうすることで、アクティブセルの日付⇒指定した範囲(今回は1セルですが)の日付を指定することができるようになりました。

今回、セルの指定に”D2″という指定を行いましたが、ここは、

var activeCell = sheet.getRange(2,4);

としても、”D2″を指定したことになるのです。

行数・列数を指定したgetRangeメソッドの使い方

スプレッドシートで指定した範囲を取得するには、”D2″とか、ダイレクトに入れてしまう事も可能ですが、

Sheetオブジェクト.getRange(行番号, 列番号, 行数, 列数)

という形で指定ができるので、今回の場合は、2行目のD列ですから
行番号:2
列番号:4
となります。
※「行数」「列数」は、範囲が複数に跨った場合に使用しますので、無しでも大丈夫です。
※もっと詳しい指定の方法は、別途まとめるようにいたします。

では次は、並んでいる全ての日付の横にに曜日が入るようにしてみましょう。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA