2021年6月28日月曜日

Google SpreadSheet で Apps Script に入門してみた

Google SpreadSheet で Apps Script に入門してみた

概要

Apps Script は Google のいろいろなサービスに JavaScript でアクセスできるサービスです 当然 SpreadSheet にも触れるので今回は SpreadSheet から Apps Script に入門してみました

環境

  • macOS 11.4
  • Chrome 91.0.4472.106
  • Google SpreadSheet
  • Apps Script

Apps Script を起動する

まずは SpreadSheet にアクセスしましょう そして

ツール -> スクリプトエディタ

と選択します

すると別画面で Apps Script の Web エディタが開きます ここで SpreadSheet 用のスクリプトを JavaScript で記載することでセルの操作などができます

サンプルコード

ではスクリプトを作成します すでにいろいろ書いてありますがデフォルトだと何もしないからの function が 1 つ用意されているだけです

今回は 3 つほどサンプルの関数を用意したので貼り付けてみましょう

function hello() {
  console.log("hello macro")
}

function getCell() {
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = spreadsheet.getActiveSheet();
  var range = sheet.getRange("A2");
  var cell_a1_value = range.getValue();
  console.log(cell_a1_value);
}

function getCells() {
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = spreadsheet.getActiveSheet();
  var range = sheet.getRange("A7:A");
  var a_values = range.getValues();
  for (var row in a_values) {
    for (col in a_values[row]) {
      console.log(a_values[row][col]);
    }
  }
}

それぞれ以下のようなサンプル関数になっています

  • hello・・・ログにメッセージを出力するだけの関数
  • getCell・・・特定のセルの値をログに出力する関数
  • getCells・・・複数の特性のセルをログに出力する関数

実行してみる

サンプルの関数を貼り付けたら実行してみましょう Apps Script のツールバーに「保存ボタン」があるのでスクリプトを保存しましょう

そしてその隣に「実行」と実行する関数名を選択できるプルダウンがあるので「hello」を選択してクリックしてみます

すると画面下にログ実行ログが表示されてメッセージが出力されているのが確認できると思います

アクセスを許可する

初回実行時やアプリがアクセスしたいスコープが変更になった場合はアクセス許可をする必要があります

Apps Script は新しいアプリとして登録されています アプリから SpreadSheet にアクセスするために許可を与える必要があります また今回作成したアプリはテスト用のアプリの設定になっており以下のように警告が出ますが気にせず許可しましょう

左下にある「詳細」をクリックすると以下のように表示されるので更に「無題のプロジェクト ( 安全ではないページ) に移動」をクリックします

他にも便利な機能がたくさんある

  • SpreadSheet 側にボタンなどを作成して関数を紐付ける
  • サードパティのライブラリの使用
  • doGet や doPost ハンドラを実行して GCP にデプロイして Web アプリとして動作させる
  • トリガーを使って定期的に実行させる

などなどたくさんの機能があります なお .gs スクリプトは基本的には GCP 上で動作させることができるスクリプトなのでローカルアプリとして動作させるのはできません

clasp などのツールを使えばローカルで開発することはできるようにはなりますがあくまでも動作させるのは GCP 上になります

0 件のコメント:

コメントを投稿