

googleスプレッドシートの起動時（スプレッドシートを開いたタイミング）に  
スクリプトエディタで作成したgasを走らせたいのですが  
次のようないずれの方法を試しても、起動時動作してくれません。

スクリプトエディタ上では、コード.gs（ディフォルト）スクリプトファイル内に  
次のようにコードを書いた上で  
個別に実行をすると動作するところまでは確認できています。

[code]

    function test(){
        Browser.msgBox("Hello!");
    }
    
[/code]

  1. スクリプトエディタのメインメニューから  
「編集」>「現在のプロジェクトのトリガー」をクリック。  
「新しいトリガーを追加」をクリックして、次の内容でトリガーを設定  
「test」>「スプレッドシートから」>「起動時」

スクリプトエディタおよびスプレッドシートを閉じて  
スプレッドシートを再度開き直した際に  
メッセージボックスで「Hello!」と表示されるはずなのですが表示されず。

  2. 仕方ないので上記のトリガー設定を削除して  
「test」関数自体を次のように「onOpen」に書き直し

[code]     function onOpen(){

        Browser.msgBox("Hello!");
    }
    
[/code]

この状態でスクリプトエディタおよびスプレッドシートを閉じて  
スプレッドシートを再度開き直した際に  
メッセージボックスで「Hello!」と表示されるはずなのですが  
これでもメッセージは表示されませんでした。

どちらも正規の手順通り操作をしているつもりなのですが  
どこかに間違いがあったりするのでしょうか？  
（ちなみにアカウント環境は、有料でのGスイートユーザーです）

以上、この現象に心当たりのある方、ご教示お願いします。


CC BY-SA 3.0
2017-09-19T05:32:40.257
38032
2022-01-25T07:04:05.373
25469
question
google-apps-script
googleスプレッドシートの起動時をトリガー（onOpen()など）としてgasが動かない


提示のコードを私の環境で試してみたところ、1. 2. 両方とも動作しました。  
特には問題なさそうに感じます。

どこに問題があるかチェックするために

  * `Logger.log("hello!");` で function 自体が起動しているか確認
  * `try { Browser.msgBox("hello!"); } catch(e) { Logger.log(e);}` で例外が起きてないか確認
  * スプレッドシート自体を再作成してみる

といった方法で確認してみるのはいかがでしょうか。


CC BY-SA 3.0
2017-09-22T03:33:12.393
38101
2017-09-22T03:33:12.393
24729
38032
answer