楽天ポイント4倍セール!セール会場へ

GAS│スクリプトプロパティをHTML内で使う方法

公開してよいスクリプトプロパティをHTMLのリンクへ渡します。

ここではPUBLIC_LINKにCGメソッドの公開URLを保存し、リンクとして表示します。

iframeの埋め込み先による表示制限と切り分けるため、最小例はリンクにしています。

以下の模擬検証は2026年10月2日の記録です。

ローカルの模擬検証を行いましたが、実際のスクリプトプロパティの設定、Webアプリのデプロイとリンク表示は未検証です。

目次

練習用の入力と設定

新しいApps ScriptプロジェクトのCode.gsへ、本文のJavaScriptを保存します。

配布ZIPのarticle-325.jsは旧版です。

本文では不要なシート取得関数を除き、画面幅とタイトルの設定を修正しています。

同名の関数を含むため、別の記事のコードを同じプロジェクトへ混ぜないでください。

データ整理の練習コードとHTML例をダウンロード(ZIP)

設定名設定する値
PUBLIC_LINKhttps://cg-method.com/ など、このサイトの公開URL。APIキーや非公開の照会URLは入れない

「プロジェクトの設定」→「スクリプトプロパティ」で、プロパティ名をPUBLIC_LINKにします。

値へhttps://cg-method.com/を入れ、スクリプトプロパティを保存してください。

この例で設定するプロパティはPUBLIC_LINKだけです。

まず新規の練習データを使い、要求される認可範囲と操作内容を確認してください。

スポンサーリンク

入力例と実行する関数

https://cg-method.com/?a=1&b=2を渡す例です。

生成したHTMLのリンク先を確認し、doGetでは設定したPUBLIC_LINKが使われることをテストします。

WebアプリではdoGetがHTMLを返します。

画面幅とブラウザーのタイトルは、HtmlOutputのaddMetaTagとsetTitleで設定します。

HTMLへ直接書いたmetaタグとtitleタグはApps Scriptで無視されるためです。

「デプロイ」→「新しいデプロイ」で種類を「ウェブアプリ」にします。

練習では実行するユーザーを自分、アクセスできるユーザーを自分のみに設定します。

デプロイ後の/exec URLを開き、「CGメソッドを開く」リンクの行き先を確認してください。

エディタでdemoPublicLinkを実行するだけでは、ブラウザー上のリンク表示は確認できません。

この例はシートやDriveを読みません。閲覧者へ公開されるHTMLとURLには個人情報や秘密を入れず、Webアプリにアクセスできるユーザーを確認します。練習では自分のみを対象にします。

// このコードは記事ごとに別のApps Scriptプロジェクトへ保存します。
function required_(key) {
  const value=PropertiesService.getScriptProperties().getProperty(key);
  if (!value) throw new Error(key+'を設定してください');
  return value;
}
function escapeHtml_(value) {
  return String(value).replace(/[&<>"']/g,c=>({'&':'&amp;','<':'&lt;','>':'&gt;','"':'&quot;',"'":'&#39;'}[c]));
}
function https_(value) {
  const s=String(value).trim();
  if (!/^https:\/\/[a-z0-9](?:[a-z0-9.-]*[a-z0-9])?(?::443)?(?:[/?#][^\s<>"'\\]*)?$/i.test(s)) throw new Error('HTTPS URLを確認してください');
  return s;
}
function publicLinkHtml_(value) {
  const url=https_(value);
  // 公開してよい、このサイトのURLだけを渡します。
  if(!/^https:\/\/cg-method\.com(?:[:/?#]|$)/i.test(url)) throw new Error('cg-method.comの公開URLを指定してください');
  return '<!doctype html><html lang="ja"><meta charset="UTF-8"><body><p><a rel="noopener noreferrer" target="_blank" href="'+escapeHtml_(url)+'">CGメソッドを開く</a></p></body></html>';
}
function demoPublicLink(){return publicLinkHtml_('https://cg-method.com/?a=1&b=2');}
function doGet() {
  return HtmlService.createHtmlOutput(publicLinkHtml_(required_('PUBLIC_LINK')))
    .addMetaTag('viewport', 'width=device-width, initial-scale=1')
    .setTitle('公開リンクの練習');
}

確認結果と切り分け

条件結果
未設定・他のホスト・不正URLHTMLを返す前に停止
URLの区切り記号属性内でエスケープして出力
秘密情報ブラウザーへ送られる値は隠せないため入力しない

Node.jsの模擬検証は5記事合計69ケースです。

2026年10月28日は、この1記事のプロパティ取得・URL拒否・HTMLエスケープ・画面設定を模擬試験しました。

Google上でのデプロイやリンク表示は今回も未検証です。

純粋関数の結果と、模擬のGoogleオブジェクトで対象選択・書込先・失敗時停止を確認した範囲であり、実サービスの成功を示すものではありません。

停止と戻し方

この例は定期トリガーを作成しません。

doGetはWebアプリのURLにアクセスしたときに呼ばれます。リンクを表示するための時間主導トリガーは不要です。

公開を終了する場合は「デプロイを管理」で対象のデプロイをアーカイブします。コードを戻す場合は旧版を保存するだけでなく、/execが使用するデプロイのバージョンも更新し、公開URLで確認します。

プロパティの変更は開いたページへ自動反映されません。

同じプロジェクトのPUBLIC_LINKだけを変更した場合は、保存後にWebアプリを再読み込みします。

コードを変更した場合は、/execが使うデプロイのバージョン更新も必要です。

保存方法はProperties Serviceの公式資料で確認できます。

公式資料

Driveフォルダの取得と列挙、シート範囲への反映、HTMLへの出力とエスケープ、Apps Scriptの利用上限を参照してください。

関連記事・旧実装の参考資料

従来のコードや外部の参考例は、本稿の練習ZIPと内容が異なる場合があります。

今回のコードは記事ごとに別のプロジェクトへ保存してください。

スポンサーリンク

スクリプトプロパティのHTML出力についてよくある質問

スクリプトプロパティには、何を保存しますか?

この例のPUBLIC_LINKには公開してよいURLだけを保存します。その値はHTMLへ出力され、閲覧者に見えるため、APIキーや非公開の照会URLは入れないでください。

プロパティに秘密情報を入れてもよいですか?

スクリプトプロパティへ保存することと、HTMLへ出力することは別です。この例のPUBLIC_LINKはブラウザーへ送るため、秘密を入れません。サーバー側だけで使う設定でも、スクリプト編集者から秘密を守れるわけではないため、編集権限を限定してください。

PUBLIC_LINKが未設定、または不正なURLのときは?

HTMLを返す前に停止します。他のホストや不正なURLの場合も同様に止まります。

URLに特殊な区切り記号が入っていたら?

属性内でエスケープして出力します。HTMLの属性が壊れたり、意図しない命令になったりしないようにしています。

iframeで埋め込まずに、リンクにしているのはなぜですか?

埋め込み先による表示制限と切り分けるためです。最小例はリンクにしています。

プロパティを変更したのに、表示が変わらないのはなぜですか?

プロパティの変更は、開いたページへ自動反映されません。ページを再読み込みして確認してください。Webアプリを公開している場合は、配備の状態も確認します。

Webアプリを公開するときの注意点は?

練習では自分のみがアクセスできるデプロイを使います。公開終了時は対象デプロイをアーカイブし、旧コードへ戻す場合はデプロイのバージョンも確認してください。

この記事のコードは、動作確認済みですか?

Node.jsの模擬検証(5記事合計69ケース)は行いましたが、実サービスの成功を示すものではありません。実際のスクリプトプロパティの設定、Webアプリのデプロイとリンク表示は未検証です。まず新規の練習データで試してください。

次に学ぶ・作業環境を選ぶ

学習を続けたい方や、作業環境を整えたい方は、目的に合うガイドをご覧ください。

スプレッドシート・GASのおすすめ書籍

作業環境の作り方

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次