質問: "aaa"; return a; } UserForm.html側 ### 試したこと ?>,=?>を使えばよいとの記述を見たのですが、使い方が間違っているのか、そのまま表示されてしまいます。使い方も教えていただけると幸いです ### 補足情報(言語/FW/ツール等のバージョンなど) より詳細な情報
回答: 強引なやり方かもしれませんが実現できたので回答します。 まずソースコードは以下のようになりました。 コード.gs ``` function main(){ var app = SpreadsheetApp; var html = HtmlService.createHtmlOutputFromFile('UserForm'); var content = html.getContent().replace(/%adasu\(\)%/, '"' + adasu() + '"'); app.getActiveSpreadsheet().show(HtmlService.createHtmlOutput(content)); } function adasu(){ var a = "aaa"; return a; } function recieveFromHtml(values) { for(var i = 0; i < values.length; i++) { Logger.log(values[i]); } Browser.msgBox("値が送信できました。\nログを確認してください。"); } ``` UserForm.html ``` 送信 ``` GAS ⇒ HTML の値受け渡し ================== 1. UserForm.html を取得しHTMLテキストを抜き出す 2. HTMLテキスト内の変数代入部分(`%adasu()%`)を `function adasu()` の値で置換 3. 置換後のHTMLテキストを HtmlService で再生成 HTML ⇒ GAS の値受け渡し ================== 1. GAS側でHTMLから値を受け取る用の `function recieveFromHtml()` を定義 2. 値を渡すためのトリガが必要なためボタンを追加 3. ボタンから起動する `function sendGoogleAppsScript()` を定義 4. HTMLから受け渡したい値を取得 5. `google.script.run` コマンドで `recieveFromHtml()` を呼び出し、渡したい値を引数に指定 補足 === `recieveFromHtml()` 内で `Browser.msgBox()` を呼び出しているのは、 表示されている UserForm.html を閉じる役割も兼ねています。 (ボタン押下後に閉じる方法が分からないので...)