スプレッドシート上にGoogle Apps Script(GAS)実行ボタンを作成する方法

スポンサーリンク
Google Apps Script

前回までの記事はこちら

前回の続きで、スプレッドシート上にボタンを配置して、そのボタン押下でGAS実行できるようにしていきます。

やりたいこと

以下のように、出力ボタン作成し、ボタン押下→GAS実行→スケジュール一覧出力ができるようにしていきます。

ボタンの作成方法

①スプレッドシートの画面のメニューから「挿入」→「図形描画」を選択する

②図形描写の画面が出てくるので、適当に図形を選択する

③作成完了したら右上の「保存して終了」ボタンを押下

スプレッドシート内にボタンが挿入されていることを確認

GASの割り当て方法

①図形選択し右上に出てくる「…」マークを押下>「スクリプトを割り当て」を押下

②対象の関数名(今回はgetCalendarEvents)を入力し、OKを押下

※GASコード全量は以下

//カレンダー情報出力の関数
function getCalendarEvents() {

  let CALENDAR_ID = getSpreadsheetEmail();
  const calendar = CalendarApp.getCalendarById(CALENDAR_ID);  

//スプレッドシートの日付情報を取得
let [startTime, endTime] = getSpreadsheetDate();

//取得したスプレッドシートの日付情報をstartTime, endTimeに代入
const events = calendar.getEvents(startTime, endTime);
 
  const values = [];
  for(const event of events){
    const record = [
      event.getTitle(),
      event.getStartTime(),
      event.getEndTime()
    ];
    values.push(record);
  }
  SpreadsheetApp.getActiveSheet().getRange(5, 1, values.length, values[0].length).setValues(values);
  console.log('finished');
}


//スプレッドシートの日付情報を取得する関数
function getSpreadsheetDate() {
  //現在のスプレッドシートを取得
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  //現在のシートを取得
  var sheet = spreadsheet.getActiveSheet();

  //指定するセルの範囲(A2,C2)を取得
  var rangeDateFrom = sheet.getRange("A2");
  var rangeDateTo = sheet.getRange("C2");

  //日付情報を取得する
  var dateFrom = rangeDateFrom.getValue();
  var dateTo = rangeDateTo.getValue();

  return [dateFrom,dateTo];
}

//スプレッドシートのメールアドレス情報を取得する関数
function getSpreadsheetEmail() {
  //現在のスプレッドシートを取得
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  //現在のシートを取得
  var sheet = spreadsheet.getActiveSheet();
  //指定するセルの範囲を取得
  var rangeEmail = sheet.getRange("E2");
  //Email情報を取得する
  var Email = rangeEmail.getValue();
  return Email;
}

これだけで完了です!

終わりに

参考にさせていただいたサイト
スプレッドシートに図形でボタンを作成しGASを実行&トリガーを使ったメニューの追加
https://atmarkit.itmedia.co.jp/ait/articles/1708/14/news011.html

読んでいただきありがとうございました!

コメント

タイトルとURLをコピーしました