実現したいこと
・複数人で共有しているGoogleスプレッドシートがあります。
・ReadOnlyで共有し、管理者が定期的に内容を更新します。
このスプレッドシートで、各ユーザーが選択しているセルの値をワンクリックでHTMLにして表示したいのです。
例えば....
ユーザAがセルA2を選択した状態でスクリプトを実行、あるいはURLをクリックすると、セルA2の内容がHTMLに表示される。
ユーザBがセルB3を選択した状態で同じ事をすると、ユーザBのPC上でセルB3の内容がHTMLに表示される。
という具合です。
(実際のアプリケーションでは状況がもっと複雑ですが、核心となる部分のみに絞るため、単純化した想定にしています。)
発生している問題
doGet関数内で固定のセルのアドレスを指定して、そのセル内容をHTML表示させる所までは出来ました。
しかし、ユーザーがどのセルを選択するかはスクリプト実行時まで分かりません。
getActiveCell関数が使えれば良いのですが、doGet関数内では動かないと理解しています(実際に動きません)。
スプレッドシートのコンテナバインドスクリプトにより、デプロイ済みHTMLのURLにパラメータを付けたリンクを作成し、doGet(e)でパラメータを受け取れるようにする事も考えましたが、ワンクリックでこれを実現する方法が思い浮かびません。
つまり、ユーザー選択に応じたリンクをスクリプトで作成しする事が出来ても、そのままそのリンクにジャンプする事が出来ない(GASではHTMLのURLを指定して開く事が出来ないと理解しています。)のです。
下記のコードが動けば良いのですが、動きませんよね....。
他の方法でも良いので、ユーザー選択に応じて内容の違うHTMLを表示する方法、何かありましたがご教示頂きたく思います。
宜しくお願いします。
試したこと
function doGet() {
var app = SpreadsheetApp.getActiveSpreadsheet();
var ss = app.getActiveSheet();
var t=HtmlService.createTemplateFromFile("UserForm");
t.CellContents=ss.getActiveCell();
return t.evaluate().setTitle("ユーザーフォーム");
}
回答1件
あなたの回答
tips
プレビュー