0
1

More than 3 years have passed since last update.

GoogleAppsScriptを用いてスプレッドシートで日程調整

Posted at

作りたいもの

友人と3人で集まれる日付を考えたい時にスプレッドシートを使って日程調整をするコードをGASで簡単に作りたい

GoogleAppsScript(GAS)

Google Apps ScriptとはGoogleが提供しているプログラミング環境、GAS(ガス)という略称あり

Googleのアカウントを持っていれば、利用する事ができるので、Webからファイルをダウンロードするといった事は行う必要がない
ブラウザに依存しない

GASについてはこちらにわかりやすくまとめてあり、使用制限などもあるので一度目を通しておくと良い

システム概要

スプレッドシートに3人ともが○をつけた日付を取得するコードをGASで書いてシステムログに出力する

スプレッドシートで用いる関数

IF関数とAND関数を用います

=IF(and(B3="○",C3="○",D3="○"),"○","×")

のようにすると3人が共通で○としている場合は○、1人でも○がなければ×をスプレッドシートに入力する

実際に使うシートの内容は以下のよう
スクリーンショット 2020-05-18 11.05.50.png

GASのコード

こちらを参考にスプレッドシートとGASの紐付けを行う


function schedule() {
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();//GASとスプレッドシートファイルの紐付け
  var sheet = spreadsheet.getSheetByName('日程調整');//シート名を指名してアクセス


  //シートの最終行番号、最終列番号を取得
  var startrow = 1;
  var startcol = 1;
  var lastrow = sheet.getLastRow();
  var lastcol = sheet.getLastColumn();


  var sheetdata = sheet.getSheetValues(startrow, startcol, lastrow, lastcol);

  for(var i=2;i<lastrow;i++){
  if(sheetdata[i][4]==""){
  var date=new Date(sheetdata[i][0]);//new Date()で日付データの生成
  Logger.log(date);
  }
  }
}

こちらのコードでスプレッドシートを以下のようにして実行します。
スクリーンショット 2020-05-18 12.23.35.png

実行結果がこれスクリーンショット 2020-05-18 12.25.08.png

見にくいのでフォーマットを変更するコードを18行目に加えて完成

function schedule() {
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();//GASとスプレッドシートファイルの紐付け
  var sheet = spreadsheet.getSheetByName('日程調整');//シート名を指名してアクセス


  //シートの最終行番号、最終列番号を取得
  var startrow = 1;
  var startcol = 1;
  var lastrow = sheet.getLastRow();
  var lastcol = sheet.getLastColumn();


  var sheetdata = sheet.getSheetValues(startrow, startcol, lastrow, lastcol);

  for(var i=2;i<lastrow;i++){
  if(sheetdata[i][4]==""){
  var date=new Date(sheetdata[i][0]);//new Date()で日付データの生成
  var date = Utilities.formatDate(date, "JST","MM'/'dd")//これを追加
  Logger.log(date);
  }
  }
}

実行すると
スクリーンショット 2020-05-18 12.32.17.png

いい感じですかね
出力となる日付をまたスプレッドシートに入力するとかlineやスラックで飛ばすとか、日付を取り出すときの条件とかいろいろいじれるので応用が利くし目で追うより作業効率を挙げられそう

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1