スプレッドシートのonEditイベント契機で別スプレッドシートの値を取得したい

872 views
Skip to first unread message

山田直人

unread,
May 13, 2014, 11:53:55 PM5/13/14
to google-app...@googlegroups.com
山田と申します。

タイトルの通り、スプレッドシートのonEditイベント契機で別スプレッドシートの値を取得するスクリプトを書いたのですが、SpreadsheetAppのopenByUrlで実行権限がないと怒られてしまいます。

function test() {
  Logger.log(values.length);
}

[14-05-14 09:52:36:768 JST] 実行に失敗: その操作を実行する権限がありません。(行 24、ファイル「コード」)(合計ランタイム 0.004 秒)

イベント契機ではなく、たとえばスプレッドシートに拡張メニューを追加して、そこから同じように上記関数をコールすると初回はアクセス許可の画面が表示されましたが、以降は問題なく値が取得できています。
イベント契機でも取得できる方法がありましたら御教授下さい。

宜しくお願い致します。

wezardnet

unread,
May 14, 2014, 9:34:04 PM5/14/14
to google-app...@googlegroups.com
こんにちは。wezardnetです。

僕も以前似たようなことをやったことがあります。
トリガー設定時にスプレッドシートへのアクセス許可を聞いてきませんでしたか?

ここで一度だけ許可を行えば、以降は編集イベントで別のスプレッドシートから値を読み込む処理が走ると思います。
参考になれば幸いです。。。


2014年5月14日水曜日 12時53分55秒 UTC+9 山田直人:

山田直人

unread,
Jun 3, 2014, 11:33:42 AM6/3/14
to google-app...@googlegroups.com
To wezardnetさん

回答のお礼が遅くなってしまい申し訳ありません。
教えて頂いた方法で無事別のスプレッドシートから値を読み込むことができました。ありがとうございます。
あらかじめ予約されたイベントハンドラであるonEdit関数からtest関数をコールする方法では意図した動作にならなかったのですが、test関数を直接トリガー設定すればいけるとは初めて知りました。
検索用のスプレッドシートとデータベース的なスプレッドシートを分けて管理したかったので助かりました。

ただ、少し残念だったのは、、検索用のスプレッドシート(トリガー設定をするシート)をコピーすると、トリガ設定はコピー先に引き継がれなかった事でしょうか。当たり前といえばあたりまえですが。。

ちなみにonEditのイベントハンドラーにこだわったのは、PCだけではなく、iPhoneやiPadのGoogleスプレッドシートからも、同じ操作方法で検索したかったからです。PCだけであれば、シートにメニューを追加するなり、図形を挿入してスクリプトを割り当てるなど、方法は複数あるのですが、如何せんiPhone,iPadのGoogleスプレッドシートは機能的に遠く及ばないのでイベントハンドラーに頼った次第です。

だらだらと書いてしまいましたが、ご回答ありがとうございました。

山田


2014年5月15日木曜日 10時34分04秒 UTC+9 wezardnet:
Reply all
Reply to author
Forward
0 new messages