Google Apps Script|初心者でも簡単!Webサイト開発
みなさん、こんにちは!
「Webサイトを作ってみたいけど、難しそう…」と思っていませんか?
そんな方のために、初心者でも手軽に始められ、柔軟にカスタマイズ可能なWebサイトをGASで作成・公開する方法を、開発手順からデプロイまで丁寧に解説してご紹介します!
目次
Webサイトを開発しよう
Webサイトを開発するにあたりHTMLのコードが必要になるため、今回はGeminiを使って静的なWebサイトのプロトタイプを生成してもらうところから始めてみます。もちろん、Gemini以外の他のAIや自分で書いたコードでも大丈夫です。
プロトタイプの作成
まずはGemini Canvasに任せて、Webサイトのおおまかな見た目や構成をサクッと作ってみましょう。
コードの知識がなくても、ログイン画面やダッシュボードといった基本ページを自動で作ってくれるので、初心者でも簡単です。
Gemini Canvasとは?
Gemini Canvasは、GoogleのAIサービス「Gemini」に新しく追加された、インタラクティブな作業スペースです。この機能を使うと、AIと対話しながら、一つの画面内で文章やコードの生成、そしてその編集までを効率的に行うことができます。
Gemini Canvasの主な特徴
リアルタイム編集:Geminiが生成したテキストやコードを、その場で直接修正できます。また変更内容はリアルタイムに反映されます。
手軽なUI設計:プロンプトに作りたいアプリのイメージを伝えるだけで、AIがそのUIコードを生成してくれます。デザインの専門知識がない方でも、AIとの対話を通じてデザインを調整し、アイデアを素早く形にすることが可能です。
コードの生成・編集・実行:HTML、React、Pythonなどのコードをプロンプトで指示するだけで自動生成し、さらにその場でプレビューや動作確認ができます。これにより、専門的な知識がなくてもプロトタイプの開発が非常にスピーディに行えます。
コードの生成
プロンプト入力欄に作りたいものや、AIに生成してほしい内容を具体的に記述します。ざっくりした内容でもAIはそれに基づいて最初のドラフトを生成してくれます。 プレビュー画面でアプリのUIを確認しながら、自分の作りたい形になるようにGeminiに指示してみてください。
入力後、「Canvas」をクリックしてから送信ボタンをクリック。
HTML、CSS、JavaScript、Pythonなどのコードが生成され、場合によってはそのプレビューや実行結果も表示されます。(今回は、最終的にGASを使ってウェブアプリを作るので、HTMLのコードが作成されるようにしましょう。)
生成されたプロトタイプのコード

生成されたプロトタイプのプレビュー
ダッシュボードページ
アクティビティ詳細ページ

GASにコードを貼り付け
1. Googleスプレッドシートの新規作成
Googleドライブから新規のGoogleスプレッドシートを作成してください。
2. HTMLファイルを作成
GASで新規のHTMLファイルを作り、「index.html」と名前をつけてください。このファイルに、先ほどGemini Canvasで作ったHTMLコードを貼り付けます。
Webサイトのデプロイ
doGet関数の定義

GASで新規のスクリプトファイル(doget.gs)を作り、下記のコードを貼り付けてください。
function doGet() {
return HtmlService.createTemplateFromFile('index').evaluate()
}
URLの生成
①新しいデプロイ
デプロイ>新しいデプロイを押下し、デプロイの種類で「ウェブアプリ」を選択します。
②デプロイ設定
ウェブアプリの説明とアクセスできるユーザーを入力し、デプロイをクリックします。
③URLの生成

④デプロイ

デプロイした後に生成されたURLにアクセスし、アプリ画面が出てきたらデプロイ成功です!
機能追加&再デプロイしよう
生成AIが作ってくれたプロトタイプは、そのまま使うだけでなく用途に合わせて自由に機能やデザインを追加・変更し、実用的なWebアプリへ柔軟に発展させることも可能です!
アクティビティデータを動的に取得する

今回Geminiに生成してもらったコードは、アクティビティの内容が直書きされた静的なサイトとなっているので、GASでGoogleスプレッドシートから動的に取得するように変更し、そのデータがアクティビティに反映されるようにします。
コードの追加・修正
<Code.gs内のデータ取得部分>
/**
* スプレッドシートからアクティビティデータを取得する
*/
function getActivitiesFromSheet() {
const sheetId = 'xxxxxxxxxxxxxxxxxxxxxxx'; // アクティビティ用スプレッドシートID
const sheetName = 'xxxxxxxx'; //データが記載されているシート名
try {
const sheet = SpreadsheetApp.openById(sheetId).getSheetByName(sheetName);
if (!sheet) {
Logger.log('アクティビティシートが見つかりません。');
return [];
}
// ヘッダー行を除いた全データを取得
const data = sheet.getRange(2, 1, sheet.getLastRow() - 1, sheet.getLastColumn()).getValues();
// 取得したデータをオブジェクトの配列に変換
const activities = data.map(row => {
return {
id: row[0],
title: row[1],
description: row[2]
};
});
return activities;
} catch (error) {
Logger.log('アクティビティデータの取得中にエラーが発生しました: ' + error.message);
return [];
}
}
先ほどと同じ手順でスクリプトを作成します(Code.gs)。
上記のコードでは、Googleスプレッドシートから「アクティビティ」データを取得する処理を行なっています。
<index.html内のデータ表示部分>
// サーバーからデータを取得
google.script.run.withSuccessHandler(function(activities) {
// データをグローバル変数に保存
allActivities = activities;
// データが取得できたらHTMLを生成して表示
appContainer.innerHTML = getActivitiesListPageHtml();
attachActivitiesListPageEvents();
})
.withFailureHandler(function(error) {
console.error('アクティビティデータの取得に失敗:', error.message);
showMessageBox('アクティビティデータの取得に失敗しました。');
renderPage('dashboard');
})
.getActivitiesFromSheet();
上記のコードはHTMLコードの抜粋になりますが、Code.gsのサーバー側関数 getActivitiesFromSheet() を呼び、データを変数に保存した後に、HTMLを生成して表示する処理を行なっている部分です。
必要に応じてスクリプトやHTMLの修正をしてください。
再デプロイ

コードを修正しただけでは公開中のページに自動で反映されないので、再デプロイする必要があります。最初のデプロイと同じ方法で、もう一度デプロイしましょう。
説明文に、修正・変更の内容を簡潔に書くと良いです。
<URLを変更したくない場合>

元々のURLから変更したくない場合は、デプロイ > デプロイを管理を選択し、新バージョンでデプロイしましょう。
動作確認
<Googleスプレッドシート内の表>
<サイト内のアクティビティページ>
実際にGoogleスプレッドシートのデータを変更し、Webサイト内のデータを確認してみると、GASで取得した最新のデータに動的に更新されていることがわかります!
まとめ
本記事では、GASで簡単にできるWebサイトの開発・デプロイ手順について解説しました。また、生成AIを使うことでプログラミング未経験者でもスムーズにWebサイト制作を始められることもご紹介しました。
こうしたツールを上手に使えば、業務の効率化はもちろん、自分のアイデアを形にするWebサイトも手軽に実現できます。まずは簡単なwebサイト構築から始めてみてください!
また、GASやAIを活用した業務改善にご興味をお持ちでしたら、こちらよりお気軽にご相談ください。
この記事が参考になった方は「いいね」やシェアをお願いします!
編集者
エンジニアチーム
編集者
エンジニアチーム
GASやLooker Studio、TROCCOなどのツールを活用した、業務効率化やデータ活用のノウハウをわかりやすく発信しています!