LoginSignup
2
2

More than 5 years have passed since last update.

Google App Script からの Google Spread Sheet 関数コール

Last updated at Posted at 2017-03-26

結論

「できない」ぽい(?)

参考:Stack Over Flow : How can I share my app script, between google spreadsheets?

  • ライブラリとして公開する
  • アドオンとして公開する
  • Google App Script 側で完結するコードにする(←今度からこうしようと思いました

しかないようにみえます(調べた限りでは).

きっかけ

Excelでぺちぺちやるような処理を自動化したく Google App Script を初めて使ってみました.「じゃあExcelでやればいいじゃないか!」という突っ込みもありますが Javascript がそのままかける,ということで GAS でやってみました.

作ったもの

職場の御飯予約表

1.png

  • 共有されたシートに,希望者が個数を入力
  • 締め切り時間になったら集計して担当者へ連絡
    • Spreadsheet にバインドしたscriptを時間トリガで呼び出し
  • メールとは別に,担当者からは情報をスマホ経由で確認できるページを用意
    • こちらは App Script(Spreadsheetにバインドしない) + HTML で用意(Spreadsheet 全体を開かなくてもよいように)
    • Spreadsheet にバインドする/しない2つの違いはこちらがわかりやすいです.

確認画面を App Script + HTML で作る際,すでに Spreadsheet 側にバインドした関数を呼びたい!となったのですが上記の通りでした...頑張って App Script だけで完結するようにコーディングしたほうが始末が良い気がします.

銀行振り込み記録(CSV)の弥生データへの変換

  • 銀行WebサイトからダウンロードできるCSVファイルを弥生でインポートできるCSV形式に変換
    • これの Spreadsheet 版です
    • 頼まれもの

別に Excel の VB マクロでもできるのでしょうが,普段見慣れている Javascript で書ける,というのは個人的には大きかったです.あと銀行振り込みの記録(例えば,"スイドウ", "XXガス", "YYデンリョク")から勘定科目("水道光熱費")への変換も大体のものはいけました.変換の履歴を取り続ければ,ほぼ全部自動でできそうです.

使ってみて思ったこと

  1. 見慣れた Javascript を使える
  2. 外部連携が簡単・強力

とくに2が非常に強力だと思いました.定期実行やメール送信,所定のURLからデータを取得するなどの処理を簡単に記述できます.それゆえに急に自分がスゴイ出来る奴に思えてしまい,書いていてなんだか楽しかったです.

例えば今回作成した御飯予約表ではメールで人数を伝達でしたが,電話APIのtwillioと連携して自動で出前注文 とかも簡単にできそうです.また後者の銀行振り込み記録についても,自動ログイン→ダウンロード→CSV変換までワンボタンで実行できるところまで落とし込めそうです.

マクロボタン→カスタムメニュー

Excel だと「マクロボタンを配置」でスクリプトの呼び出しを簡素化しましたが,Spreadsheet では「カスタムメニューに追加」が良いように思いました.

関数メニューを追加する例
// 日付を挿入
function insertDate() {
  var tSheet = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0];
  var tCell = tSheet.getRange(1, 1, 1, 1);  
  var tDate = new Date();
  // Cell[A:0]に今日の日付を追加
  tCell.setValue(tDate);  
}

// スプレッドシートメニューに追加
function onOpen(){
  var tSpreadSheet = SpreadsheetApp.getActiveSpreadsheet();
  var tMenuEntries = [{name: "日付を挿入", functionName: "insertDate"}];
  tSpreadSheet.addMenu("マイメニュー", tMenuEntries);
}
2
2
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
2
2