バッキーの日々是爆食

アクセスカウンタ

zoom RSS Googleドライブの新しいスプレッドシートのonOpenイベントではactivateできなくなった

<<   作成日時 : 2014/05/28 07:25   >>

ブログ気持玉 0 / トラックバック 0 / コメント 0

Googleドライブのフォーラム「本日の日付のシートに自動で飛ぶスクリプトを教えてください」という質問に対応させていただいたのですが、結構重要だと思われる仕様変更に遭遇したのでアップしておきます。
質問自体は「スプレッドシートを開いたときに、当日の名前のシートに自動で飛ぶスクリプトを入れたい」ということで、さほど難易度の高くないものだったのですが、「新しいスプレッドシート」でスプレッドシートを開いたときにシートを選べない現象が発生しました。
確認のために、同じスクリプトを古い形式のスプレッドシートで試してみたところ、こちらはスプレッドシートを開いたときに正常にシートを選べました。

ということで、調べてみたところ2014年4月の後半に実施された仕様変更によって、新しいスプレッドシートでは、スプレッドシートを開いたときに(onOpenで)任意のシートを表示できなくなったようです。(activate系のメソッドは全てダメになりました)
onEditもダメなので、けっこう致命的だと思います。

しかも不具合ではなくて明確な仕様変更ですので(個人的には仕様の改悪だと思います)、残念ながらユーザー側では対処する方法はありません。

次善の策としては、
  1. 独自メニューから特定のシートにジャンプする(開く)
  2. シートの一覧からシートを選択する
  3. 古い形式のスプレッドシートを使用する
のどれかになるでしょう。

参考: Google Apps Script
Issue 3928: April 22, 2014
New Spreadsheet: activate() doesn't change active sheet into onOpen service function event
https://code.google.com/p/google-apps-script-issues/issues/detail?id=3928

Release Notes
April 17, 2014
The Document method setSelection the Sheet method activate, and the Spreadsheet methods setActiveRange and setActiveSelection no longer have any effect if they are called from an onOpen or onEdit trigger.
https://developers.google.com/apps-script/releases/#april_2014


以上、ご参考になれば幸いです。



Keywords:
Google Drive, Spreadsheet, onOpen, setActiveSheet, setActiveRange, setActiveSelection

テーマ

関連テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文
Googleドライブの新しいスプレッドシートのonOpenイベントではactivateできなくなった バッキーの日々是爆食/BIGLOBEウェブリブログ
文字サイズ:       閉じる