Googleフォームの欠点の1つは、多言語対応フォームに対するビルトインサポートがないことです。そのためのビルトインワークフローが用意されていません。多くの組織が、国際的な顧客調査、さまざまな国にまたがるイベント登録、多言語の従業員向けフィードバックフォーム、異なる言語を話す家族へ送る学校からの連絡などにフォームビルダーを活用していることを考えると、これは残念な点です。
幸いなことに、課題を解決するためのいくつかの回避策があり、この記事ではそれぞれの方法を紹介しています。サードパーティのアドオンを使う、質問内で言語を手動で複製または組み合わせる、Google Sheetsのスクリプトを実行するといった方法があります。
ただ、正直に言うと、これらのワークフローには欠点があります。複雑だったり、データ分析やフォーム管理を必要以上に難しくしてしまったりするのです。そこでこの記事では、別の解決策も紹介しています。それがJotformです。Jotformなら、わずか数クリックで、コードを一行も書くことなく、フォームを130言語に自動翻訳できます。
しかしその前に、Googleフォームを翻訳するための3つの方法すべてを順を追って説明し、安心して取り組めるようにします。記事を読み終えたら、自分に最も合った方法を選んでください。
1. アドオンを使う
Pretty Forms DesignerのようなGoogle Workspace Marketplaceのアドオンを使うのが、Googleフォームのmultilingualサポートつまりgoogleフォームのマルチランゲージサポートつまりgoogleフォーム 多言語対応を実現する最も簡単な方法です。このアドオンは、多言語対応を含む追加機能でフォームビルダーを拡張します。
ここでは、アドオンをインストールする方法と、それを使ったGoogleフォームの翻訳方法を紹介します。
- Googleフォームを開き、多言語対応にしたいフォームを作成または開きます。
- フォームエディタの右上にある三点メニュー(⋮)をクリックし、アドオンを取得を選択します。
- Google Workspace MarketplaceでPretty Forms Designerを検索し、クリックします。
- インストールをクリックし、表示される指示に従って必要な権限を付与します。
- インストールが完了したら、フォームに戻り、パズルのピースのアイコンからアドオンを開き、Pretty Forms Designerを起動します。
- メニューを開いたまま、Open Form Designerを選択します。次に、アドオン内で設定に移動し、Enable Multi-Language Supportをオンに切り替えます。GoogleフォームのGoogleフォーム 多言語対応として、1つの言語を無料で追加できますが、それ以上追加するにはアップグレードが必要です。
- フォームを設定します。ドロップダウンメニューをクリックして、フォームを翻訳したい言語を選択します。次に、Google翻訳ツールを使って、Googleフォームのテキストを自動的に翻訳します。
- 設定を保存します。このアドオンがフォームに言語オプションを適用するため、回答者は希望の言語でフォームを表示できるようになります。
共有された多言語対応のGoogleフォームは次のように表示されます。
Pro Tip
アドオンを一切使いたくない場合は、Jotformの多言語フォーム機能のような組み込みソリューションを使用すれば、わずか数クリックで130以上の言語にフォームを翻訳できます。最もシンプルなフォーム翻訳のワークフローについては、こちらをご覧ください。
2. 手動で多言語フォームを作成する
Googleフォームの内容を手動で翻訳することもできます。この方法では完全なコントロールが可能ですが、かなりの時間がかかるため、2〜3言語のみを扱い、比較的短いフォームの場合に最適です。
これには3つの方法があります。
- 各言語ごとに複数のフォームを作成する。
- Googleフォームに標準搭載されている「回答に応じてセクションに移動」のロジックを使用して、回答者を言語別バージョンのフォームへ振り分ける。
- 各質問と回答欄の中に両方の言語を直接含める。
各言語ごとに複数のフォームを作成する
- メリット: 作成が簡単で、翻訳を完全にコントロールできる
- デメリット: 複数のフォームが作成されるため、回答の管理が難しくなる
シンプルな方法としては、必要な言語ごとにフォームを複製し、各コピーを手動で翻訳することが挙げられます。たとえば、英語、スペイン語、フランス語のバージョンが必要な場合は、それぞれの言語で完全に記述された3つの別々のフォームができあがります。
この方法はシンプルで、ロジックやアドオンを必要としませんが、複数のフォームを管理し、あとで回答を統合する作業が管理上の手間となります。
「回答に応じてセクションに移動」を使用する
- メリット: 異なる言語を使うユーザーと共有できる1つのフォームだけを作成すればよい
- デメリット: 設定に時間がかかり、回答を1回エクスポートすると異なる言語が混在する
この方法ではアンケートロジックを使用して、フォームの冒頭で回答者に言語セレクターを提示し、選択した言語で完全に記述されたセクションへ振り分けます。回答者にとっては見た目がすっきりしますが、すべての質問を複数のセクションにわたって複製する必要があります。
- フォームを開き、上部にラジオボタンの質問を追加して、回答者に希望する言語(例:English、Español、Français)を選択してもらいます。
- フォームエディタの下部にある「セクションを追加」をクリックして、言語ごとに新しいセクションを作成します。
- 質問に戻り、その質問の3点メニューをクリックして、「回答に応じてセクションに移動」を選択します。
- 各回答の選択肢の横に表示されるドロップダウンを使って、各選択肢を対応する言語セクションに割り当てます。
- 各セクションに、該当する言語で完全に記述したフォームの質問を入力します。
- 回答者が別の言語セクションに戻ってループしないよう、各セクションの末尾が「フォームを送信」に設定されていることを確認してください。これはセクションの下部で設定します。下向き矢印をクリックして、「フォームを送信」を選択します。
各質問に翻訳を追加する
- メリット:1つの言語を話すオーディエンスに共有できるフォームを1つだけ作成できる
- デメリット:ユーザーに合わせてカスタマイズされている感じがしにくい
回答者を別々のセクションに振り分けるのではなく、各質問と回答のフィールド内に両方の言語を直接含めます。この方法は、すべてを1ページにまとめておくのが現実的な、2言語の短いフォームに適しています。
たとえば、名前のフィールドは次のように表示されます。お名前は何ですか? / ¿Cómo te llamas?
フォーム内で選択式の質問を作成する場合は、回答オプションも全体を通して同じ2言語形式に従います。
この方法ではロジックの設定は不要ですが、言語や質問を追加するにつれてフォームが雑然とした印象になることがあります。シンプルなフォーム以上のものを作成する場合は、前述のセクションベースのアプローチやアドオンの方が適しています。
3. Googleスプレッドシートのスクリプトを使用する
- メリット:フォームの質問と回答を1つの中央データベースで管理できる
- デメリット:非常に複雑で、コーディングの知識がある人に最適
少しのコーディングに抵抗がない方であれば、Googleスプレッドシートのスクリプトを使うことも、複数の言語でGoogleフォームを作成する方法の一つです。これは3つの方法の中で最も高度な選択肢です。各フォームを手動で作成するのではなく、Googleスプレッドシートから言語データを取得して、翻訳されたバージョンのフォームを自動的に生成するスクリプトを記述します。
Did you know?
Jotformなら、コーディングの複雑さを取り除けます。数回クリックするだけで、すべてのフォームを130以上の言語に自動翻訳できます。次のセクションでは、このシンプルな解決方法をステップバイステップで解説します。
スクリプトの使い方は次のとおりです。
- スプレッドシートを作成し、2つのワークシート、「Questions(質問)」タブと「Answer Options(回答選択肢)」タブに入力します。
Questionsタブでは、各行に次の項目が必要です。
- 質問ID(例:Q1、Q2)
- 質問タイプ(例:LINEAR_SCALE または SHORT_ANSWER)
- 英語の質問テキスト、および各言語列に入力する翻訳版
- Answer Options(回答選択肢)タブに切り替えます。質問と回答に、関連する質問IDを割り当てる必要があります。
上記の例では、リニアスケールの質問と、SCALE_MAX、MIN_LABEL、MAX_LABELの行を確認できます。各言語列に翻訳済みのラベルを入力してください。
SHORT_ANSWER の質問では、ユーザーが自由に回答を入力できるため、ここでの入力は必要ありません。
各質問タイプの扱い方がわかるように、以下の表をご覧ください。
| Question type | Answer Options tab required? | Rows needed | Notes |
|---|---|---|---|
|
LINEAR_SCALE |
はい |
SCALE_MAX、MIN_LABEL、MAX_LABEL |
SCALE_MAX はスケールの最大値(例:5)を設定します。MIN_LABEL と MAX_LABEL は翻訳された両端のラベル(例:「あまり当てはまらない」と「とても当てはまる」)です。 |
|
SHORT_ANSWER |
いいえ |
なし |
自由記述フィールド — Questions タブで質問を翻訳するだけです。 |
|
MULTIPLE_CHOICE |
はい |
回答選択肢ごとに1行 |
各選択肢を個別の行として追加し、言語列ごとに翻訳します。 |
|
CHECKBOX |
はい |
回答オプションごとに1行 |
複数選択と同じ — 選択可能なオプションごとに1行 |
|
ドロップダウン |
はい |
回答オプションごとに1行 |
複数選択やチェックボックスと同じ構造 |
|
段落 |
いいえ |
なし |
長文の自由記述 — 短文回答と同じく、質問を翻訳するだけ |
- Googleスプレッドシートで、上部メニューの拡張機能をクリックし、Apps Scriptを選択してスクリプトエディタを開きます。
このオプションを展開して、以下のスクリプト全体をコピーし、Apps Scriptエディタに貼り付けてください。
/**
* 多言語対応のGoogleフォーム生成ツール
* -----------------------------------
* リンクされたGoogleスプレッドシートから設問と回答選択肢のデータを読み込み、
* 言語ごとに完全に翻訳されたGoogleフォームを1つずつ生成します。
*
* セットアップ:
* 1. このスクリプトをGoogleスプレッドシート内の「拡張機能 > Apps Script」に貼り付けます。
* 2. 下記のSPREADSHEET_IDを、お使いのシートのID(URL内にあります)に更新します。
* 3. LANGUAGESを、シート内の言語列に合わせて更新します。
* 4. Run > generateMultilingualForms をクリックし、プロンプトが表示されたら承認します。
*/
// ─── CONFIG ────────────────────────────────────────────────────────────────
const SPREADSHEET_ID = "YOUR_SPREADSHEET_ID_HERE"; // ← これを置き換えてください
const LANGUAGES = [
{ name: "Spanish", column: 5 }, // Questions タブの E 列
{ name: "French", column: 6 }, // Questions タブの F 列
{ name: "German", column: 7 }, // Questions タブの G 列
];
// タブ名 — 名前を変更した場合は更新してください
const QUESTIONS_SHEET = "Questions";
const OPTIONS_SHEET = "Answer Options";
// Row where data starts (row 1 = title, row 2 = instructions, row 3 = headers)
const DATA_START_ROW = 4;
// ─── MAIN FUNCTION ─────────────────────────────────────────────────────────
function generateMultilingualForms() {
const ss = SpreadsheetApp.openById(SPREADSHEET_ID);
const qSheet = ss.getSheetByName(QUESTIONS_SHEET);
const optSheet = ss.getSheetByName(OPTIONS_SHEET);
const questions = getQuestions(qSheet);
const options = getAnswerOptions(optSheet);
LANGUAGES.forEach(lang => {
createFormForLanguage(lang, questions, options);
});
Logger.log("✅ Done! Check your Google Drive for the generated forms.");
}
// ─── READ QUESTIONS TAB ────────────────────────────────────────────────────
function getQuestions(sheet) {
const lastRow = sheet.getLastRow();
const data = sheetspan>.getRange(DATA_START_ROW, 1, lastRow - DATA_START_ROW + 1, 7).getValues();
return data
.filter(row => row[0] !== "") // 空白の行をスキップ
.map(row => ({
id: row[0], // A列: QUESTION_ID
type: row[1], // B列: QUESTION_TYPE
en: row[2], // C列: 英語
// Col D は TYPE NOTES — スクリプトではなく人間が使用します
es: row[4], // Col E: スペイン語
fr: row[5], // Col F: フランス語
de: row[6], // Col G: ドイツ語
}));
}
// ─── 回答選択肢タブを読み込む ───────────────────────────────────────────────
/**
* QUESTION_ID をキーとするオブジェクトを返します。
* 各エントリには次が含まれます: scaleMax、minLabel(翻訳済み)、maxLabel(翻訳済み)
*
* 例:
* {
* Q1: { scaleMax: 5, labels: { Spanish: { min: "No mucho", max: "Mucho" }, ... } },
* Q2: { ... }
* }
*/
function getAnswerOptions(sheet) {
const lastRow = sheet.getLastRow();
const data = sheet.getRange(DATA_START_ROW, 1, lastRow - DATA_START_ROW + 1, 7).getValues();
const options = {};
data.forEach(row => {
const qId = row[0]; // 列A: QUESTION_ID
constoptionType = row[1]; // Col B: OPTION_TYPE
const value = row[2]; // Col C: OPTION_VALUE
// Skip section label rows (merged cells come back as empty in col B)
if (!qId || !optionType) return;
if (!options[qId]) {
options[qId] = { scaleMax: 5, labels: {} };
LANGUAGES.forEach(lang => {
options[qId].labels[lang.name] = { min: "", max: "" };
});
}
if (optionType === "SCALE_MAX") {
options[qId].scaleMax = parseInt(value, 10);
}
if (optionType === "MIN_LABEL" || optionType === "MAX_LABEL") {
LANGUAGES.forEach((lang, i) => {
const translatedLabel = row[4 + i]; // 列 E, F, G
if (optionType === "MIN_LABEL") {
options[qId].labels[lang.name].min = translatedLabel;
} else {
options[qId].labels[lang.name].max = translatedLabel;
}
});
}
});
return options;
}
// ─── CREATE ONE FORM PER LANGUAGE ─────────────────────────────────────────
function createFormForLanguage(lang, questions, options) {
const form = FormApp.create(`Event Feedback Form — ${lang.name}`);
form.setDescription(`Please complete this form in ${lang.name}.`);
questions.forEach(q => {
// 言語名に基づいて適切な翻訳列を選択する
const translatedText = getTranslation(q, lang.name);
switch (q.type) {
case "LINEAR_SCALE": {
const item = form.addScaleItem();
const qOptions = options[q.id] || {};
const labels = (qOptions.labels || {})[lang.name] || {};
item.setTitle(translatedText)
.setBounds(1, qOptions.scaleMax || 5)
.setLabels(labels.min || "", labels.max || "")
.setRequired(true);
break;
}
case "SHORT_ANSWER": {
form.addTextItem()
.setTitle(translatedText)
.setRequired(false);
break;
}
// MULTIPLE_CHOICE、CHECKBOX、DROPDOWN などはここで拡張します
default:
Logger.log(`⚠️ Unknown question type "${q.type}" for ${q.id} — skipped.`);
}
});
Logger.log(`✅ Created form: ${form.getEditUrl()}`);
}
// ─── HELPER: GET TRANSLATION FOR A QUESTION ───────────────────────────────
function getTranslation(question, languageName) {
switch (languageName) {
case "Spanish": return question.es;
case "French": return question.fr;
case "German": return question.de;
default: return question.en; // fallback to English
}
}- スクリプトの上部で、SPREADSHEET_ID の値をご自身のシートのIDに更新します。
これはスプレッドシートのURLの中にあります。/d/ と /edit の間にある長い文字列です。
- 保存をクリックし、次に実行をクリックします。プロンプトが表示されたら、スクリプトがGoogleフォームとGoogleドライブにアクセスするために必要な権限を付与します。
- スクリプトの実行が開始されるとすぐに、ページ下部に実行ログが表示されます。完了が確認されるまでお待ちください。
- Googleフォームを開きます。言語ごとに新しく生成されたフォームが1つずつ表示され、翻訳された質問やスケールラベルが完全に構築された状態で、確認・共有の準備が整っています。
重要な注意点:この方法では言語ごとに個別のGoogleフォームが1つずつ作成されるため、後から複数のフォームの回答を管理し、統合する必要があります。
Jotformで多言語対応フォームを作成 — 回避策は不要
上記のGoogleフォームの回避策が手間に見合わないと感じるなら、 Jotformにより良い解決策があります。
Googleフォームの代替として、Jotformはフォームビルダーに多言語対応機能を直接組み込んでいます。アドオンもスクリプトも不要で、管理すべき重複フォームもありません。Jotformの翻訳機能は130以上の言語に対応しており、設定全体がわずか数クリックで完了します。これはGoogleフォームの翻訳作業に比べて格段に簡単です。
- メリット:多言語フォームを非常に簡単かつ素早く作成でき、ユーザー体験も優れています。たとえば、Jotformは回答者のブラウザ言語を検出し、その言語でフォームを自動的に表示できます。また、回答者が使用した言語に応じて異なる自動返信メールを送信できるため、スペイン語の回答者にはスペイン語で返信が届きます。
- デメリット: Jotformの無料プランの上限に達する可能性があります。無料で5つのフォームを作成できますが、それ以降は適切なパッケージを選択する必要があります。
Jotformを使って多言語フォームを作成する方法は次のとおりです:
- Jotformのフォームビルダーでフォームを開き、ページ上部のオレンジ色のナビゲーションバーにある設定をクリックします。
- フォーム設定パネルで、その他のオプションを表示をクリックします。
- フォームの言語セクションまでスクロールし、編集を選択します。ドロップダウンからフォームのデフォルト言語を選択します。
- 翻訳の横にある編集をクリックし、次に言語を追加をクリックします。検索バーを使うか、ドロップダウンを閲覧して追加したい言語を見つけ、追加をクリックします。
- フィールドの翻訳タブとフォームの警告タブで翻訳内容を確認します。Jotformは多くのフィールドを自動入力するため、調整が必要な箇所を確認してカスタマイズしてください。変更は自動的に保存されます。
設定が完了すると、フォームの右上に言語セレクターが表示され、回答者はいつでも希望の言語に切り替えることができます。また、「言語を検出」を有効にすると、回答者がフォームを開いた際にブラウザの言語に自動的に合わせることもできます。
ワンクリックでGoogleフォームをJotformに移行する
グローバルなユーザーに向けて多言語フォームを作成するより簡単な方法をお探しなら、ぜひJotformを今すぐ無料でお試しください。さらに次のような高度な機能もご利用いただけます。
- 条件付きロジック
- 150以上のフォーム連携
- 20,000以上のすぐに使えるフォームテンプレート
最も嬉しいのは、ゼロから始める必要がないという点です。わずか数分で既存のGoogleフォームをJotformに移行でき、すべての質問や構造が自動的に引き継がれます。
Googleフォームの多言語対応に関するよくある質問
Googleフォームには標準の翻訳機能がないため、回避策が必要になります。とはいえ、サードパーティ製アプリのPretty Forms Designerを使えば、Google翻訳をワークフローに組み込むことができます。
Jotformは、多言語フォームを作成する最も簡単な方法です。標準の翻訳機能は130以上の言語に対応しており、わずか数クリックで設定できます。
また、このガイドの手順に従ってGoogleフォームを翻訳することもできますし、Jotformを直接使って他言語のお問い合わせフォームを作成することも可能です。
この記事は、Googleフォームを使って多言語の回答者から回答を収集する必要がある、あるいはより簡単な多言語フォームソリューションを探している、中小企業の経営者、教育者、マーケター、運用チームを対象としています。


























コメントの送信: