プログラムの質問か?といわれれば違うような気もしますが
GASでのイシューなので、不謹慎?であったらお許しください
さて、ひょんなことから、自分の作ったスプレッドシートを他人共有しました。
すると、相手方にはメニューが表示されていないとのこと。
確認すると、見えていないメニューは自作メニューでした
lang
1function onOpen(){ 2 var ui = SpreadsheetApp.getUi(); 3 ui.createMenu('追加メニュー') 4 .addSubMenu(SpreadsheetApp.getUi().createMenu('新しいシートを作成') // 5 .addItem(this_month, 'addSheet') // 6 .addItem(next_month, 'addSheet_next') // 7 ) 8 .addToUi(); 9} 10 11 12
みたいな感じです。
予想通り、あちらはスクリプトエディタから承認はされておらず、エディタなんて開く知識もない。
試しに、マクロを記録しようとしたらマクロさえ「記録できませんでした」
という感じです。
これをスクリプトエディタを開かずに、承認を促す方法とかは無いでしょうか?
いくつもこのようなスプレッドシートを利用するとなると、その度、エディタを開いて
何かしら実行 → 承認
というのは少々、汎用利用としては現実的ではないので困っています
ご共助、よろしくお願いします
追記
共有方法はGoogleドライブの特定のカテゴリに対して共有化(googleアカウントをダイレクトに指定)
どうやって共有したのか、方法を記載してください。
コメントありがとうございます。そうですね、よく考えたら重要事項でした^^; 追記いたしました
カテゴリっていうのはフォルダでいいんですよね?フォルダ作成して、googleアカウント指定して編集可で共有したら普通にメニューでてきました。編集は可能にしてありますよね?
はい、そのとおりです
ぱらぱらとすみません。このメニューは質問者様はどうやって表示させているのでしょうか?またマクロの記録は、エラーなどでできないのでしょうか、それともやり方が分からない系なのでしょうか?
いえ、関心持っていただけるだけでも幸いです。質問者としてはGASもマクロの使い方もわかります。OnOpenに自作メニューを記述していますが認証がおりていないため、そもそもOnOpenが起動しない。
伝え方が悪いと思うのですが、共有側のユーザからではシートに内包されたContainer Bound Scriptを動かすことが出来ない(マクロでさえ)。スクリプトエディタに行き相手方のアカウントで認証させれば動くのですが、エディタを開かずに認証させるわかりやすい方法はないか?という意味でした
状況は理解できてきた気がします。失礼にあたるので補足しますがあくまで共有相手がマクロの使い方がわからないのではないかの意図でした。改めて質問ですが、このスクリプトで必要な権限はスプレッドシートの読み書きだけですね?
すみません、何故かブラウザに書き込みの更新がすぐに反映されず今気が付きました。多分そうです。あとは別のスプレッドシートへのアクセス、ライブラリへのアクセス?登録?もあります。
補足ですが、ライブラリを共有フォルダに置くことでへのアクセス可能になることがわかりました。スクリプトエディタの承認さえ行えばコードは通常通りに動く状態になりました(最初はライブラリが共有場所になかったので動かず困惑しました)
ライブラリってscriptで使うライブラリではないのですか?どういうものですか?
スクリプトで登録するライブラリです。今回の話は、Container Bound Scriptですが権限の話でしたので Standalone Scripをライブラリ登録している旨をお書きしました!
反映がおそい^^; すみません
どこまで可能になってますか?よくわかりません。
あなたの回答
tips
プレビュー