【GoogleAppsScript】GoogleスプレッドシートをGASでいじってみた

はじめに

こんにちは、がんがんです。
先日、こちらの記事でLINE Botを試しに作成しました。
gangannikki.hatenadiary.jp

次のステップとしてGoogleスプレッドシートの使い方を学んでいきます。
今回はそのときの備忘録です。

最終目的

  • LINE Botを作成し、イベント主催者のほしい情報を渡す

今回試したこと

スプレッドシートのセルを操作

まずは基本的な作業としてセルの操作を行っていきます。
セル単体か複数セルかで少し変わるものの、基本的にはgetとsetみたいです。

セルの値を指定する

function myFunction() {
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();  //  アクティブ状態のシートを取得
  var sheet = spreadsheet.getActiveSheet();  //  アクティブ状態のシートを取得
  var cell = sheet.getRange('A1');  //  セルの指定
  cell.setValue('Hello world!');  //  値の設定
}

実行結果
f:id:gangannikki:20190408205140p:plain

セルの値を取得する

function myFunction2() {
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();  //  アクティブ状態のシートを取得
  var sheet = spreadsheet.getActiveSheet();  //  アクティブ状態のシートを取得
  var cell = sheet.getRange('A1');  //  セルの指定
  var value = cell.getValue();  //  値の取得
  Logger.log(value);  //  ログを出力
}

実行結果
実行結果はログへの出力結果です。
f:id:gangannikki:20190408205511p:plain

複数セルの値を指定する

次に複数セルを処理していきます。コードは以下になります。

function myFunction3() {
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();  //  アクティブ状態のシートを取得
  var sheet = spreadsheet.getActiveSheet();  //  アクティブ状態のシートを取得
  var range = sheet.getRange('B1:B5');  //  セルの範囲指定
  var values = [
    ["おはよう"],
    ["こんにちは"],
    ["こんばんは"],
    ["おやすみ"],
    ["どうも"]
  ];
  range.setValues(values);  //  値の設定
}

実行結果
f:id:gangannikki:20190408205548p:plain

複数セルの値を指定する

コードは以下になります。

function myFunction4() {
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();  //  アクティブ状態のシートを取得
  var sheet = spreadsheet.getActiveSheet();  //  アクティブ状態のシートを取得
  var range = sheet.getRange('B1:B5');  //  セルの範囲指定
  var values = range.getValues();  //  値の取得
  Logger.log(values);  //  ログへ出力
}

実行結果
こちらも実行結果はログの結果です。リストとして出力されています。
f:id:gangannikki:20190408205610p:plain

気になったので数値でもやってみました。
こちらの1から5までの数値を取得させてみます。
f:id:gangannikki:20190408211354p:plain

すると、float型としてログに出力されました。
f:id:gangannikki:20190408211405p:plain

スプレッドシートでいろいろ試してみる

次はメニューを作成したり、ダイアログボックスを作ってみます。

ダイアログボックスを表示させてみる

コードは以下になります。スクリプトを実行するとダイアログが出力されます。

function test2() {
  Browser.msgBox("〇〇牧場?");
}

実行結果
f:id:gangannikki:20190408205648p:plain

メニューを追加してみる

コードは以下になります。onOpen()スクリプトを実行すると実行される関数です。
スプレッドシートを更新したり、はじめてスクリプトを実行すると追加されます。

function onOpen() {
  SpreadsheetApp.getUi()
    .createMenu('追加メニュー') // メニューの追加
    .addItem('追加項目', 'myFunction') // 項目の追加
    .addSeparator()//区切り線
    .addSubMenu(SpreadsheetApp.getUi().createMenu('追加サブメニュー') // サブメニューの追加
      .addItem('サブメニューの項目1', 'test') //サブメニューの項目1の追加
      .addItem('サブメニューの項目2', 'test') //サブメニューの項目2の追加
    )
  .addToUi();
}

function test() {
  Browser.msgBox("テストです");
}

実行結果はこんな感じです。
f:id:gangannikki:20190408222559j:plain

ログの出力

コードは以下になります。

Logger.log(value);  //  ログを出力

まとめ

今回はGoogleスプレッドシートの使い方を勉強していきました。
Googleスプレッドシート、GASを用いたLINE BOTは調べたらいろいろ出てきそうですが、
今回はなるべく一人で頑張ってみようと思います。

次はLINE BOTスプレッドシートの処理をつなげていきます。