Googleフォームに隠しフィールドを設定したい？ノーコードで解決する方法(2025年改訂版)

#### 本記事の内容は公開日には動作しましたが、2025年4月10日時点では動作しなくなっておりました。その後、追記した回避策を入れ込むことで動作しました。もし”また動かない”ということがありましたら是非ご連絡ください。

## 1. Googleフォームにhidden値を設定したい？

### フォーム開発ならhiddenフィールドは当たり前、でも…
フォーム開発ではhiddenフィールドを使って値を埋め込むのはよくある手法です。たとえば、
- ユーザーIDを自動で入力する
- 広告の流入元を記録する
- 社内アンケートで部署情報を自動入力する

しかし、**Googleフォームにはhiddenフィールドの機能がありません**。そのため、通常の方法ではこれを実現できません。

### でもちょっとした工夫でhidden値を扱える！
Googleフォームの強みは「ノーコードで簡単にフォームを作成できること」です。スクリプトを使わなくても、**「事前入力＋分岐セクション」** を活用すれば、hidden値と同じ機能を実現できます。

本記事では、**Googleフォームの機能だけを使って、hidden値を埋め込み、ユーザーに見せずに記録する方法** を解説します。

## 2. Googleフォームの事前入力機能とは？

### 事前入力（プレフィルドリンク）とは？
Googleフォームには「事前入力リンク（Prefilled Link）」という機能があり、特定の質問に対して事前に値を埋め込むことができます。

📌 **事前入力のリンク例**
```text
https://docs.google.com/forms/d/e/XXXX/viewform?usp=pp_url
&entry.123456=user123
&entry.789012=marketing_campaign
```

リンクの取得は以下の箇所から行えます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4017914/14ae0eb0-1d92-463b-981e-739ab6644987.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4017914/122ef858-757d-4e3c-b9b9-d1f2958291ff.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4017914/0017b218-34ba-4656-a426-7648905219ba.png)

このURLを開くと、該当する質問に `user123` や `marketing_campaign` が自動入力された状態でフォームが開きます。

## 事前入力だけでは不十分な理由
事前入力リンクを使えば、hidden値のようにデータを埋め込むことができますが、**以下の問題が発生します**。

1. **ユーザーがフォームを開いた後、値を自由に編集できてしまう**
2. **hidden値を質問として表示しなければならず、ユーザーに見えてしまう**
3. **完全なhiddenフィールドとして扱うことができないため、意図しない変更のリスクがある**

そこで、次に紹介する **「分岐セクション」** を活用することで、hidden値を「ユーザーに見せずに」記録する方法を実現します。

## 3. Googleフォームでhidden値を設定する方法

### ✅ 解決策：「分岐セクション＋事前入力」でhidden値を隠す
1. **hidden値を事前入力する**
2. **hidden値を記録する「隠しセクション」を作成**
3. **回答者には編集させず、データとして記録**
4. **通常の質問セクションへ自動で移動**

### ✅ Googleフォームの設定

#### 1. 「隠しセクション」を作る
- セクションを作成 -
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4017914/893868fa-7975-4879-81e5-44048dfc47ec.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4017914/89d068a8-4e90-49d5-a663-c57087736d4a.png)

- 隠しセクション内にhidden値用の質問を作成（例：「ユーザーID」「キャンペーンコード」）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4017914/412ff2ed-5180-4f77-b6c8-3f4c3ae10c21.png)

#### 2. 「入力させる質問」を作る（任意の質問）
- **例：「あなたの興味のある商品は？」**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4017914/ba09c330-840b-4e73-85df-c213777276c8.png)

#### 3. 「入力させる質問」の後に「フォームを送信」へ分岐
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4017914/85678fd1-84d4-4885-a56a-8d905c510e3e.png)

#### 4. 事前入力リンクから値を入れてURLを入れてください。そして最後に…
```text
&pageHistory=0,1
```
をURLの最後に入れます。
これはgooleformのセクションが2つあることを示します。
このパラメータを追記することで、Googleformが2つのセクションを認識してくれるようです。
通常セクションが2つ、隠しセクションが1つであれば合計3つなので、&pageHistory=0,1,2と入力します。
推測になりますが…
Googleフォームは送信時に pageHistory の値を読み取って、
「この質問、通過したセクション内にあるよね？」と確認
通過してなければ entry.xxx を無視

つまり pageHistory=0,1 を指定すれば、強制的にセクション1（hiddenセクション）も通ったことになる
→ だから entry.XXXXX=Hidden2
もちゃんと送られる！

と、いう仕組みなのではないかなと思います。
残念ながら筆者はきちんとした技術者ではないので推測です。
間違っていたら是非ご指摘ください。

#### 5. 完成版URLのイメージ
```text
https://docs.google.com/forms/XXXXXXX/viewform?entry.XXXフォームのIdXXX=隠したい値&pageHistory=0,1
```

## 4. 動きの仕組み
1. ユーザーが指定のURLをクリック（hidden値付きの事前入力URL）
2. **hidden値とpageHistoryが含まれたGoogleフォームのURLに遷移**
3. **「入力させる質問」を回答（何でもOK）**
4. **裏でhidden値が記録された「隠しセクション」を経由**
5. **通常の質問を回答**
6. **送信時に、hidden値付きのデータがスプレッドシートに保存**

## 5. 応用例（マーケティング・業務活用）
✅ **ユーザー識別**
   - 事前入力URLにユーザーIDを埋め込み、Googleフォームで記録
   
✅ **広告キャンペーンのトラッキング**
   - 広告の流入元をGoogleフォームで記録し、効果測定を行う

✅ **社内アンケートの自動識別**
   - 所属部署情報をhidden値として設定し、回答者が編集できないようにする

✅ **Salesforceのレコードに回答を紐づけする**
   - Salesforceレコードを判別するための値を埋め込んだURLを顧客に渡し、回答してもらうことで紐づけする
   - GoogleフォームからSalesforceに送る場合の方法はこちらの記事から

https://qiita.com/Lucy_kgsmec/items/f96a01ced2b8a6ee81ee





## 6. まとめ
✅ **Googleフォームではhiddenフィールドは使えないが、「分岐セクション＋事前入力」で代替可能！**  
✅ **スクリプト不要で、ノーコードでhidden値を設定できる！**  
✅ **マーケティングや業務用途に応用可能！**