質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Q&A

解決済

2回答

7262閲覧

GAS onEditの挙動について

ssmxgo

総合スコア178

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

1グッド

1クリップ

投稿2019/06/10 09:20

onEdit()の挙動についてイマイチ不可解で引っかかるところがあります。

パターン1のコードは動きますが、パターン2のコードは関数の呼び出しができません
こんなことで引っかかっていて凹みますが、いまいち解決の調べ方もわからずでした。

set_image関数は単体での挙動を確認しているのでonOpenの使用によるものと推測しています
また、set_imageには ライブラリ を利用しています。

稚拙な質問で申し訳ございませんが、何卒ご教授よろしくお願い致します

パターン1

gas

1function onEdit(e) { 2 change_image_left(); 3 //change_image_right(); 4}

パターン2

gas

1function onEdit(e) { 2 //change_image_left(); 3 change_image_right(); 4}
function change_image_left(){ var ss = SpreadsheetApp.getActiveSpreadsheet(); var s = ss.getSheetByName("シート1"); s.getRange(2,1).setFormula('=image("https://XXXXXX/XXX.jpg")'); } function change_image_right(){ set_image("https://XXXXXX/XXX.jpg"); } function set_image(url) { var response = UrlFetchApp.fetch(url); var image = response.getBlob(); var file = DriveApp.createFile(image); var res = ImgApp.doResize(file.getId(), 640); var ss = SpreadsheetApp.getActiveSpreadsheet(); var s = ss.getSheetByName("シート1"); s.insertImage(res.blob, 2, 1); file.setTrashed(true); }
Dokumoot👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

権限ですね。onEditやonOpenなど自動で動くものは基本的にそのスプレッドシートしか触れません

投稿2019/06/10 09:27

papinianus

総合スコア12705

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

papinianus

2019/06/10 09:30

ライブラリはやったことないので分かりませんが、ドライブは無理です。 あと、権限制限にかかったとき、実行トランスクリプトにログが出た気もしますシート
ssmxgo

2019/06/10 09:32

承認が必要なサービスにアクセスすること はできません。 …そ、そうでしたか… ありがとうございました。
papinianus

2019/06/10 09:33

こういうググラビリティの低いワードの知らなきゃわからん系のは凹む必要なし。 シンプルトリガー、インストーラブルトリガーの区別と名前だけ覚えて帰ってください
ssmxgo

2019/06/10 09:34

追記ありがとうございます。モバイルアプリが対応しているトリガーとしてonEditがあったので、いろいろためしていたのですが、なかなか実用性となると複雑なことができませんね…
ssmxgo

2019/06/10 09:35

ありがとーございました〜〜!!!!
papinianus

2019/06/10 22:05

モバイルアプリは自由に発動できないですよね。画像パーツとかにスクリプトを関連付けても押せないですし、確かに苦しめられた。
ssmxgo

2019/06/11 03:40

画像は駄目でしたね。画像の代わりにコンボボックを設置し、値変更をトリガーにしてみました!
guest

0

★代替手段を発見いたしました。
papinianusさま、申し訳ありません。
自己解決すると勝手にベストアンサーになってしまうと思いますが(ならなかった)、同じ内容でぶつかってる方にも公表すべきかと踏み切らせていただきました。でもとても勉強になりました。

gas

1function onEditInstalled(e){ 2 change_image_right(); 3}

トリガーの設定
イメージ説明

最終目標にしていたスマホでも動かすことが出来ました。
さて、ユーザーが変わった場合はどうでしょうか(汗)…一応できているようですが。
Thanks!-参考

投稿2019/06/10 10:12

編集2019/06/10 10:14
ssmxgo

総合スコア178

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

papinianus

2019/06/10 22:07

申し訳なくないです。それがインストーラブルトリガーです。学びがあって最適な解決が得られたことがベストです
ssmxgo

2019/06/11 03:39

ありがとうございます! とても勉強になりました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問