GoogleスプレッドシートのApps Scriptを使って、ブラウザからアクセスできる独自のWebページを作りたいと思ったことはありませんか。doGet関数を使えば、スプレッドシートをデータベース代わりにして、動的なHTMLページを簡単に公開できます。この記事では、doGet関数の基本的な使い方から、静的ページの作成手順、よくあるエラーの対処法までを詳しく解説します。
この記事を読み終えると、あなたは自分だけのWebアプリをスプレッドシート上で構築できるようになります。
【要点】doGet関数でHTMLを返すWebアプリの作成手順
- doGet関数の定義: 関数doGet(e) { return HtmlService.createHtmlOutputFromFile(‘Index’); } で、HTMLファイルを返します。
- HTMLファイルの作成: プロジェクト内に「Index.html」というファイルを追加し、任意のHTMLコードを記述します。
- Webアプリとして公開: デプロイから「新しいデプロイ」→「ウェブアプリ」を選択し、アクセス権限を設定して公開します。
- テンプレートHTMLの活用: = ?> タグを使うと、サーバー側でデータを埋め込んだ動的なページが作成できます。
ADVERTISEMENT
目次
doGet関数でHTMLを返す仕組みと準備
doGet関数は、Google Apps ScriptでWebアプリを作成する際のエントリーポイントです。ユーザーが公開されたURLにアクセスすると、この関数が実行され、戻り値としてHTMLやテキストがブラウザに表示されます。この仕組みを使えば、スプレッドシートのデータを加工して動的なWebページとして提供できます。
事前に準備するものは、Googleアカウントと、スプレッドシートに紐付いたApps Scriptプロジェクトです。スプレッドシートを開き、「拡張機能」→「Apps Script」でエディターを開きます。ここにコードを記述していきます。
doGet関数でHTMLを出力する手順
ここでは、シンプルな静的HTMLページを返すdoGet関数を作成します。以下の手順に従って進めてください。
- コード.gsに関数を記述する
プロジェクトの「コード.gs」ファイルを開き、以下のコードを貼り付けます。function doGet(e) {
return HtmlService.createHtmlOutputFromFile('Index');
}
このコードは、プロジェクト内の「Index.html」というファイルを読み込んで、その内容をHTMLとして返します。 - HTMLファイルを作成する
エディタの左側にある「ファイルを追加」ボタン(+アイコン)をクリックし、「HTML」を選択します。ファイル名を「Index」に設定し、以下のサンプルコードを記述します。<!DOCTYPE html> <html> <head> <base target="_top"> <title>My Web App</title> </head> <body> <h1>Hello, World!</h1> <p>This is a static page created with Google Apps Script.</p> </body> </html> - Webアプリとしてデプロイする
エディタの右上にある「デプロイ」ボタンをクリックし、「新しいデプロイ」を選択します。種類として「ウェブアプリ」を選び、以下の設定を行います。
– 説明: 任意の説明(例: 初回デプロイ)
– 次のユーザーとして実行: 「自分」または「ウェブアプリにアクセスしているユーザー」(後述の注意点参照)
– アクセスできるユーザー: 「全員(匿名ユーザーを含む)」または「自分のみ」など、目的に応じて選択
設定後、「デプロイ」ボタンをクリックすると、URLが発行されます。このURLにアクセスすると、作成したHTMLページが表示されます。 - 動作確認と更新
デプロイ後にコードを変更した場合は、再度「デプロイ」→「新しいデプロイ」または「既存のデプロイを管理」からバージョンを更新して再公開します。新しいバージョンでも同じURLが使えます。
よくあるエラーと注意点
HtmlService.createHtmlOutputFromFile でファイルが見つからない
ファイル名が正しいか確認してください。createHtmlOutputFromFile(‘Index’) と指定した場合は、プロジェクト内に「Index.html」という名前のファイルが存在する必要があります。ファイル名の大文字小文字も区別されますので注意してください。
デプロイ後に「スクリプトが大きすぎます」と表示される
HTMLファイルのサイズが大きすぎる場合に発生します。画像や大量のCSS/JSを直接埋め込むのではなく、外部リンクで読み込むようにするか、テンプレートを使って分割してください。
アクセス権限の設定ミスで403エラー
デプロイ時の「アクセスできるユーザー」が「自分のみ」になっている場合、他のユーザーがアクセスしようとすると403エラーが表示されます。第三者に公開する場合は「全員(匿名ユーザーを含む)」を選択してください。
doGet関数が実行されない
関数名が「doGet」であることを確認してください。大文字小文字は区別されませんが、スペルミスがないように注意します。また、プロジェクト内にdoGet関数が1つだけ定義されている必要があります。
ADVERTISEMENT
doGet関数とdoPost関数の比較
| 項目 | doGet | doPost |
|---|---|---|
| 呼び出し方法 | GETリクエスト(URL直接アクセス) | POSTリクエスト(フォーム送信など) |
| 主な用途 | Webページの表示、データの取得 | データの送信・登録・更新 |
| 戻り値の例 | HtmlOutput, TextOutput | HtmlOutput, TextOutput |
| 引数e | クエリパラメータを含む | POSTデータを含む |
| 主な注意点 | URLにパラメータが露出する | クロスサイトリクエストフォージェリ対策が必要 |
まとめ
doGet関数を使えば、Googleスプレッドシートのスクリプトから簡単に静的HTMLページを公開できます。基本的な手順は、コード.gsにdoGet関数を記述し、HTMLファイルを作成してデプロイするだけです。公開後は、スプレッドシートのデータを読み込んで動的なコンテンツを表示するなど、応用範囲が広がります。次は、doGet関数内でスプレッドシートの値を取得してテンプレートに埋め込む方法を試してみてください。
ADVERTISEMENT
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
Googleスプレッドシートの人気記事ランキング
- 【Googleスプレッドシート】GOOGLEFINANCE関数で株価・為替を取得!リアルタイムデータの呼び出し
- 【Googleスプレッドシート】印刷範囲を指定して印刷!特定範囲だけPDFや紙に出す手順
- 【Googleスプレッドシート】新しいスプレッドシートを作成する3つの方法!ドライブ・URL・テンプレート
- 【Googleスプレッドシート】数値の連続データを自動入力!オートフィルの活用
- 【Googleスプレッドシート】ダークモードを有効にする!目に優しい配色への切替
- 【Googleスプレッドシート】株価APIで株式データを自動取得!GOOGLEFINANCE超え活用
- 【Googleスプレッドシート】共有相手が編集できない時のチェック!権限と許可状態の確認
- 【Googleスプレッドシート】ページ設定で用紙サイズと向きを調整!印刷レイアウトの基本
- 【Googleスプレッドシート】Excelファイルxlsxをインポートする手順!ドラッグ&ドロップで取り込み
- 【Googleスプレッドシート】条件付き書式をコピーする!書式のみペーストの活用
