飯田市でホームページ制作をしている牧内です。
WordPressのお問い合わせフォームは、Contact Form 7などのプラグインで作るのが一般的です。ただ、サーバー環境やPHPのバージョン、メール送信の設定によっては、フォームが表示されても、送信時にエラーが出ることがあります。
そうした場合の選択肢の一つが、GoogleフォームをWordPressに埋め込む方法です。Googleフォームなら、WordPressやレンタルサーバーのメール送信機能に頼らずに、お問い合わせを受け付けられます。
この記事では、実際に行った作業をもとに、次の手順を整理します。飯田市・南信州でホームページ制作会社をお探しの方、お問い合わせフォームの運用でお困りの方の参考になれば幸いです。
- Googleフォームの作成
- WordPressへの埋め込み
- CSSによるスマートフォン対応
- Google Apps Script(GAS)による、会社のメールアドレスへの通知
- 公開前の確認項目
この記事の要点
- Googleフォームの埋め込みコードは、iframeをdivで囲み、CSSで幅を調整する
- iframe内のフォームの高さは、CSSで自動取得できない。パソコンとスマートフォンで確認して、高さを決める
- メール通知は、フォームと連携したスプレッドシート側のApps Scriptで行う。トリガーは「スプレッドシートから」「フォーム送信時」
- スクリプトの「実行」ボタンでは、テストできない。公開されたフォームから実際に送信して確認する
手順1:Googleフォームを作成する
Googleフォームで、新しいフォームを作成します。一般的な問い合わせフォームであれば、次の項目を用意します。
- お名前(必須)
- メールアドレス(必須)
- 電話番号(任意)
- お問い合わせ内容(必須)
メールアドレスの項目には、「回答の検証」でメールアドレスの形式チェックを設定します。
また、一般のお客様がGoogleアカウントにログインせずに回答できるよう、公開範囲や回答の制限を確認します。この設定が合っていないと、ログイン画面が出て、送信できません。
Googleフォームの回答は、Google側に保存されます。WordPressのデータベースには、お問い合わせの内容が残りません。
手順2:埋め込みコードを取得する


フォームを回答者が開ける状態にしたうえで、フォームのメニューから「HTMLを埋め込む」を選び、埋め込みコードをコピーします。次のようなコードです。
html
<iframe
src="https://docs.google.com/forms/d/e/FORM_ID/viewform?embedded=true"
width="640"
height="826"
frameborder="0"
marginheight="0"
marginwidth="0">
読み込んでいます…
</iframe>
FORM_ID の部分には、フォーム固有のIDが入ります。このコードを貼り付ければ、ホームページの中にフォームが表示されます。お客様は、外部のGoogleフォームのページに移動する必要がありません。
手順3:WordPressに埋め込む
フォームを置きたい固定ページなどを編集します。
- ブロックエディター:「カスタムHTML」ブロックにコードを貼る
- クラシックエディター:「テキスト」タブに切り替えて貼る
CSSで調整しやすいように、iframeを専用のdivで囲みます。
html
<div class="google-form-wrap">
<iframe
src="https://docs.google.com/forms/d/e/FORM_ID/viewform?embedded=true"
title="お問い合わせフォーム"
width="100%"
height="900"
frameborder="0"
marginheight="0"
marginwidth="0">
読み込んでいます…
</iframe>
</div>
Contact Form 7などの既存フォームを置き換える場合は、旧フォームのショートコードを外してから設置します。
手順4:CSSでスマートフォンに対応させる
埋め込みコードをそのまま使うと、横幅が固定されているため、スマートフォンで表示がはみ出すことがあります。次のCSSで、幅を調整します。「外観 → カスタマイズ → 追加CSS」など、テーマのCSS欄に追加します。
css
.google-form-wrap {
width: 100%;
max-width: 800px;
margin: 0 auto;
overflow: hidden;
}
.google-form-wrap iframe {
display: block;
width: 100%;
height: 1200px;
border: none;
}
パソコンでは、最大800pxの幅で中央に配置されます。スマートフォンでは、親要素の幅に合わせて表示されます。
フォームの内側に縦スクロールバーが出る場合
実際に設置したとき、Googleフォームの内側に縦スクロールバーが表示されました。原因は、iframeの高さが、フォーム全体の高さより小さかったことです。今回は、高さを900pxから1200pxに変更して解消しました。
iframeの中にあるフォームの高さは、WordPress側のCSSだけでは、自動で取得できません。項目数や、スマートフォンでの折り返しによって、必要な高さが変わります。パソコンとスマートフォンの両方で確認して、高さを決めます。
CSSでスクロールバーを隠す方法もありますが、フォームの下部、特に送信ボタンまで隠れることがあります。フォーム全体が表示されていることを、確認してください。
手順5:回答を会社のメールアドレスに通知する
Googleフォームの回答は、フォームやスプレッドシートに保存されます。ただ、企業のお問い合わせフォームとしては、普段使っているメールアドレスに内容が届くようにしたい場合が多いと思います。
Google Apps Script(GAS)を使うと、フォームの送信時に、メールで通知できます。有料のフォームサービスやSMTPプラグインは不要です。
5-1. 回答をスプレッドシートに記録する
フォームの編集画面で「回答」タブを開き、スプレッドシートを作成します。フォームの回答が、スプレッドシートに記録されるようになります。
5-2. Apps Scriptを開いてコードを貼る
作成したスプレッドシートで、「拡張機能 → Apps Script」を選びます。最初から入っている myFunction などを、次のコードに置き換えます。
javascript
function sendNotification(e) {
// 通知先メールアドレス
var email = "contact@example.com";
// フォームの回答内容
var responses = e.values.join('\n');
// 件名と本文
var subject = "ホームページからお問い合わせを受信しました";
var body = "以下の内容でお問い合わせが届きました。\n\n" + responses;
// メール送信
MailApp.sendEmail(email, subject, body);
}
contact@example.com を、通知を受け取りたいメールアドレスに変更します。
このコードは、回答データを改行でつなぎ、指定したアドレスに送ります。次の点に注意してください。
- フォームと連携した、スプレッドシート側のApps Scriptで動作する
- 通知先はコード内で固定している。回答者のメールアドレス宛ての自動返信ではない
5-3. トリガーを設定する
コードを保存して、Apps Scriptの左側にある「トリガー」を開きます。「トリガーを追加」から、次のように設定します。
| 設定項目 | 設定内容 |
|---|---|
| 実行する関数 | sendNotification |
| イベントのソース | スプレッドシートから |
| イベントの種類 | フォーム送信時 |
保存すると、Googleアカウントの権限の承認を求められることがあります。メールを送るスクリプトのため、内容を確認して承認します。スプレッドシートに紐づけたスクリプトなので、イベントのソースは「スプレッドシートから」を選びます。
5-4. テスト送信する
公開しているGoogleフォームから、実際にテスト回答を送信します。次の2点を確認します。
- スプレッドシートに回答が記録される
- 指定したメールアドレスに通知が届く
スクリプトの「実行」ボタンを直接押すと、フォーム送信時に渡されるデータ(e)がないため、エラーになることがあります。テストは、必ず実際のフォームから送信して行います。
公開前の確認項目
実際のホームページから、送信テストを行い、次の点を確認します。
- パソコンとスマートフォンで、フォームが正しく表示される
- 入力欄や送信ボタンが、途中で切れていない
- Googleアカウントにログインしなくても、送信できる
- 回答がスプレッドシートに保存される
- 指定した会社のメールアドレスに、通知が届く
- 迷惑メールフォルダに入っていない
- 個人情報の取り扱いやプライバシーポリシーの案内が、適切に書かれている
アカウントとアクセス権限
フォームとスプレッドシートには、個人情報が保存されます。共有設定とアクセス権限を確認してください。
制作会社のGoogleアカウントで作成した場合、長期運用では、お客様自身が管理するアカウントに所有権を移します。担当者が変わったときや、制作会社との契約が終わったときに、フォームが止まるのを防げます。
個人情報とプライバシーポリシー
Googleフォームを使うと、お客様が入力した情報は、Googleのサービスに送られます。プライバシーポリシーへの記載内容や、利用目的の示し方については、当事務所は法律の専門家ではないため、断定できません。最終的な判断は、弁護士など専門家、または管轄の窓口にご確認ください。
通知メールの上限と運用
Apps Scriptのメール送信には、1日に送れる件数の上限があります。上限はアカウントの種類によって異なるため、Googleの公式ドキュメントで確認してください。
この方法の利点と注意点
利点
- WordPressやサーバーのメール送信環境に依存しない
- WordPressに、SMTP用のメールアカウントのパスワードを保存しなくてよい
- 回答を、スプレッドシートに記録できる
- 既存のWordPressのページに、埋め込める
- CSSで、表示の幅を調整できる
注意点
- Googleフォーム特有のデザインが残る。サイトのデザインに完全に合わせることはできない
- 通知用のスクリプトと、アカウントの管理が必要になる
- 迷惑な送信への対策は、Googleフォームの機能の範囲になる
まとめ
WordPressのメール送信にトラブルがある場合や、管理の手間を減らしたい場合には、GoogleフォームとApps Scriptの組み合わせが、有力な選択肢になると思います。
お問い合わせフォームは、必ずしもWordPressのプラグインで作る必要はありません。サイトの目的、保守のしやすさ、セキュリティを見て、方法を選びます。

飯田市でホームページ制作・広告運用をサポート|デザインスタジオiR
牧内理恵
まきうちりえ
飯田市在住、広告制作歴20年以上。これまで200名以上のクライアント様と向き合い、100件以上のサイト制作を手掛けてきたデザイナー兼エンジニアの牧内理恵です。御社の強みを引き出し、業績アップに繋がるWebサイト・ネットショップ・販促ツールをご提案します。拠点とする長野県内はもちろん、全国各地からのご依頼にも柔軟に対応しております。
「相談してよかった」と言っていただける、飯田下伊那地域のパートナーとして。
長野県飯田市を拠点に、ホームページ制作やECサイト構築、Web運用のトラブル解決を承っています。20年以上のキャリアで培った「伝わるデザイン」と「確かな技術」で、御社の業績アップを支えます。飯田・下伊那エリアはもちろん、全国からのオンライン相談も大歓迎です。
「ホームページを作りたい」「ホームページをリニューアルしたい」といったご依頼もお気軽にお声がけください。
※強引な勧誘は一切ありませんので、安心してお悩みをお聞かせください。


