初期設定を実行する:setupAppを動かす
この節で学ぶこと
前の節では、Code.gs と index.html に完成コードを貼り付けました。
この節では、アプリを動かす前に必要な初期設定を行います。
今回実行するのは、Code.gs の中にある次の関数です。
setupApp()
この setupApp() は、学校祭デジタル受付アプリを使うための準備をまとめて行う関数です。
まず大切なこと
完成コードを貼り付けただけでは、まだアプリを正しく使う準備ができていません。
今回のアプリでは、受付データを保存するシートや、都道府県・市区町村を選ぶための地域マスタが必要です。
その準備を自動で行うのが、setupApp() です。
完成コードを貼る
↓
保存する
↓
setupApp() を実行する
↓
受付データ用のシートが作られる
↓
地域マスタ用のシートが作られる
↓
管理者パスコードが設定される
↓
目標来場者数が設定される
1. setupAppとは何か
setupApp() は、初期設定をまとめて行う関数です。
関数とは、決まった処理に名前をつけたものです。
今回の setupApp() は、次の4つを実行します。
function setupApp() {
setupSheet();
setupAreaMasterSheet();
setAdminPasscode();
setDefaultTargetVisitorCount();
}
今は、この中身を全部理解しなくても大丈夫です。
初心者向けに言うと、setupApp() は次のような役割です。
アプリを使う前の準備ボタン
setupAppが行う準備
| 処理 | 内容 |
|---|---|
setupSheet() | 受付データを保存するシートを作る |
setupAreaMasterSheet() | 都道府県と市区町村の一覧を作る |
setAdminPasscode() | 管理画面に入るためのパスコードを設定する |
setDefaultTargetVisitorCount() | 来場者数の目標人数を設定する |
2. setupSheetが作るもの
setupSheet() は、受付データを保存するシートを作ります。
作られるシート名は、次です。
受付データ
このシートには、来場者がフォームに入力した情報が保存されます。
受付データシートの見出し
setupSheet() を実行すると、次の見出しが作られます。
| 列 | 見出し |
|---|---|
| 1 | 受付日時 |
| 2 | 受付番号 |
| 3 | 氏名カナ |
| 4 | 来場区分 |
| 5 | 学年 |
| 6 | クラス |
| 7 | 来場目的 |
| 8 | 同伴人数 |
| 9 | 郵便番号 |
| 10 | 都道府県 |
| 11 | 市区町村 |
| 12 | 住所詳細 |
| 13 | 出身学校 |
| 14 | 備考 |
| 15 | UserAgent |
何のために必要か
来場者が受付フォームを送信すると、このシートに1行ずつデータが追加されます。
1人受付する
↓
受付データシートに1行追加される
もう1人受付する
↓
さらに1行追加される
つまり、受付データシートは、来場者名簿のような役割です。
3. setupAreaMasterSheetが作るもの
setupAreaMasterSheet() は、地域マスタ用のシートを作ります。
作られるシート名は、次です。
地域マスタ
このシートには、都道府県と市区町村の一覧が入ります。
地域マスタとは
地域マスタとは、フォームの選択肢として使う一覧表です。
今回のフォームでは、都道府県を選ぶと、市区町村の選択肢が変わります。
たとえば、岐阜県を選ぶと、次のような市区町村が出ます。
岐阜市
大垣市
各務原市
多治見市
高山市
この一覧を持っているのが、地域マスタです。
地域マスタの見出し
| 列 | 見出し |
|---|---|
| 1 | 都道府県 |
| 2 | 市区町村 |
このシートがあることで、受付フォームの都道府県・市区町村選択が動きます。
4. setAdminPasscodeが設定するもの
setAdminPasscode() は、管理画面に入るためのパスコードを設定します。
完成コードでは、次のようになっています。
function setAdminPasscode() {
const passcode = '2026';
PropertiesService
.getScriptProperties()
.setProperty(ADMIN_PASSCODE_PROPERTY_KEY, passcode);
}
この中で大切なのは、次の部分です。
const passcode = '2026';
つまり、最初の管理者パスコードは次です。
2026
なぜパスコードが必要なのか
管理画面には、受付データの集計や最新受付情報が表示されます。
誰でも見られる状態だと困るため、パスコードを入力した人だけが見られるようにしています。
受付フォーム
→ 来場者が使う
管理画面
→ 管理者・先生・スタッフが使う
5. setDefaultTargetVisitorCountが設定するもの
setDefaultTargetVisitorCount() は、目標来場者数を設定します。
完成コードでは、最初に次のように書かれています。
const DEFAULT_TARGET_VISITOR_COUNT = 4;
つまり、初期状態では、目標来場者数は4人です。
なぜ4人なのか
授業では、短時間で目標達成の動きを確認したいからです。
たとえば、目標人数が100人だと、授業中に100件の受付を入力するのは大変です。
でも、4人なら授業中に動作確認できます。
1件目
2件目
3件目
4件目
↓
目標達成の演出を確認できる
実際のイベントで使う場合は、後で100人、300人、500人などに変更できます。
6. setupAppを実行する手順
ここから実際に手を動かします。
手順
Google Apps Scriptの画面で、次の順番で進めます。
1. 上部の関数選択メニューをクリックする
2. setupApp を選ぶ
3. 実行ボタンをクリックする
4. 権限確認が出たら許可する
5. 実行が完了するまで待つ
関数選択メニューとは
Apps Script画面の上部に、関数名を選ぶメニューがあります。
そこに、次のような名前が表示されます。
myFunction
doGet
setupApp
setupSheet
submitReception
この中から、setupApp を選びます。
実行ボタン
setupApp を選んだら、上部の実行ボタンを押します。
▶ 実行
これで、初期設定が始まります。
7. 初回の権限確認について
初めて setupApp() を実行すると、Googleから権限確認が表示されます。
これは、アプリがスプレッドシートを操作するために必要です。
表示されることがある画面
次のような表示が出ることがあります。
承認が必要です
または、
このアプリはGoogleで確認されていません
初心者の方は少し不安になるかもしれませんが、授業では自分で作ったプログラムを自分のスプレッドシートで動かしているため、手順に沿って許可します。
許可の流れ
画面の表示に従って、次のように進みます。
権限を確認
↓
自分のGoogleアカウントを選ぶ
↓
詳細をクリック
↓
プロジェクト名に移動
↓
許可
表現は環境によって少し違うことがあります。
不安な場合は、先生に確認してください。
8. 実行後に確認すること
setupApp() の実行が終わったら、スプレッドシートに戻ります。
下のタブに、次の2つのシートができているか確認します。
| シート名 | 確認すること |
|---|---|
| 受付データ | 見出しが作られている |
| 地域マスタ | 都道府県と市区町村が入っている |
受付データシートの確認
受付データ シートを開くと、1行目に見出しが入っています。
受付日時
受付番号
氏名カナ
来場区分
学年
クラス
来場目的
同伴人数
郵便番号
都道府県
市区町村
住所詳細
出身学校
備考
UserAgent
この時点では、まだ受付データは入っていません。
来場者フォームから送信すると、2行目以降にデータが追加されます。
地域マスタシートの確認
地域マスタ シートを開くと、都道府県と市区町村の一覧が入っています。
例として、次のような行があります。
岐阜県 岐阜市
岐阜県 大垣市
愛知県 名古屋市
東京都 千代田区
大阪府 大阪市
このデータが、フォーム画面の都道府県・市区町村選択に使われます。
9. 実行できたか確認するチェックリスト
次の項目を確認してください。
| 確認項目 | できたら○ |
|---|---|
関数選択メニューで setupApp を選んだ | |
| 実行ボタンを押した | |
| 権限確認を許可した | |
| エラーが出ずに実行完了した | |
スプレッドシートに 受付データ シートがある | |
スプレッドシートに 地域マスタ シートがある | |
受付データ の1行目に見出しがある | |
地域マスタ に都道府県と市区町村が入っている |
10. よくあるつまずき
つまずき1:setupAppが見つからない
関数選択メニューに setupApp がない場合は、次を確認します。
| 確認すること | 内容 |
|---|---|
| 保存したか | コードを貼った後に保存していない可能性があります |
| Code.gsに貼ったか | Code.gs ではなく index.html に貼っている可能性があります |
| コードが途中で切れていないか | setupApp() の部分が貼られていない可能性があります |
まず保存して、画面を再読み込みしてみます。
つまずき2:権限確認が怖い
権限確認は、Apps Scriptがスプレッドシートを操作するために必要です。
今回のアプリでは、次のような操作をします。
シートを作る
見出しを入れる
受付データを書き込む
地域マスタを書き込む
そのため、権限が必要になります。
授業中は、先生の指示に従って許可してください。
つまずき3:エラーが出た
エラーが出たら、まずエラー文を読みます。
よくある原因は次の通りです。
| 原因 | 確認すること |
|---|---|
| コードが途中で切れている | 完成コードを全部貼れているか |
#Code.gs まで貼っている | 見出しは貼らない |
Code.gs と index.html を逆に貼った | 貼る場所を確認する |
| 保存していない | 保存してから実行する |
| スプレッドシートからApps Scriptを開いていない | 紐づきがない可能性がある |
つまずき4:受付データシートができない
setupApp() を実行したのにシートができない場合は、次を確認します。
本当に実行した関数が setupApp か
エラーが出ていないか
スプレッドシートを更新したか
別のスプレッドシートを見ていないか
スプレッドシートを再読み込みすると、シートが表示される場合もあります。
11. わからない時にAIへ聞く方法
この節では、初期設定や権限確認でつまずくことがあります。
その場合は、AIに次のように聞きます。
質問例1:setupAppの意味を聞く
Google Apps Scriptで学校祭デジタル受付アプリを作っています。
Code.gsの中に setupApp() という関数があります。
function setupApp() {
setupSheet();
setupAreaMasterSheet();
setAdminPasscode();
setDefaultTargetVisitorCount();
}
初心者にもわかるように、
この関数が何をしているのか説明してください。
質問例2:setupAppが見つからない
Google Apps Scriptで学校祭デジタル受付アプリを作っています。
関数選択メニューで setupApp を選びたいのですが、setupApp が表示されません。
Code.gsには完成コードを貼ったつもりです。
初心者向けに、確認する場所を順番に教えてください。
質問例3:権限確認で止まった
Google Apps Scriptで setupApp を実行したら、
権限確認の画面が出ました。
学校祭デジタル受付アプリの初期設定をしています。
この権限確認は何のために必要ですか。
初心者にもわかるように説明してください。
質問例4:エラー文を見てもらう
Google Apps Scriptで setupApp を実行したらエラーが出ました。
作っているもの:
学校祭デジタル受付アプリ
やったこと:
Code.gsに完成コードを貼り付けて、setupAppを実行しました。
エラー文:
ここにエラー文を貼る
初心者にもわかるように、原因と直し方を教えてください。
12. この節ではまだやらないこと
この節では、初期設定だけを行います。
まだ次の作業はしません。
Webアプリとして公開する
受付フォームを入力する
管理画面を見る
デザインを変更する
これらは次の節以降で行います。
今は、setupApp() を実行して、シートができたことを確認できればOKです。
13. この節のまとめ
この節では、setupApp() を実行して、学校祭デジタル受付アプリの初期設定を行いました。
大切なポイントは、次の通りです。
- 完成コードを貼っただけでは、まだ準備は完了していない。
setupApp()は、アプリを使う前の初期設定をまとめて行う関数。受付データシートは、来場者の入力内容を保存する場所。地域マスタシートは、都道府県と市区町村の選択肢を作るための一覧。- 管理者パスコードの初期値は
2026。 - 目標来場者数の初期値は
4。 - 初回実行時には、Googleの権限確認が出る。
- 実行後は、スプレッドシートに
受付データと地域マスタができているか確認する。 - エラーが出たら、エラー文をコピーしてAIに聞く。
次の節では、作成したGASをWebアプリとして公開し、URLから受付フォームを開けるようにします。
確認問題
問題1
この節で実行する関数名は何ですか。
回答
setupApp() です。
問題2
setupApp() は何をするための関数ですか。
回答
受付データシート、地域マスタシート、管理者パスコード、目標来場者数など、アプリを使う前の初期設定を行うための関数です。
問題3
setupApp() を実行すると作られる主なシートは何ですか。
回答
受付データ シートと 地域マスタ シートです。
問題4
初期状態の管理者パスコードは何ですか。
回答
2026 です。
問題5
初期状態の目標来場者数は何人ですか。
回答
4 人です。
