初心者でも簡単!GASでフォームをコピーする方法

Googleフォームをコピーしたいんだけど、どうしたらいいんだろう…GASを使えばできるって聞いたことがあるけど、難しそうだなぁ。
猫男
猫男
catman
catman
心配はいらない。catmanがGASを使ったフォームのコピー方法を伝授するさ。ステップバイステップで教えてやろう。

GASでフォームをコピーする方法

フォームをコピーするためには、特定のGASメソッドを使う必要があるぞ。

 function copyForm() {
 var originalForm = FormApp.openById('フォームのID');
 var newForm = originalForm.copy('新しいフォームの名前');
 Logger.log('新しいフォームID: ' + newForm.getId());
} 

originalFormにコピー元のフォームを指定し、newFormでコピー先を作成する。copy()メソッドを使えば、フォームを簡単に複製できる

フォームのIDってどうやってわかるの…?
猫男
猫男
catman
catman
フォームのURLを見てくれ、そこの「formId=」の後ろがフォームIDだ。

 

練習問題:フォームを複製する更なる挑戦

次は、フォームの質問も含めて更に複雑なコピーを行ってみよう。このコードを一度自分で考えて実装してほしい。

  • フォームのタイトルを変えてコピーしてみる。
  • すべての質問をコピーした上で、新しいセクションを追加する。

 

 

解答と解説:フォームコピーの応用

GASを使って、フォームのタイトルや質問も含め全てをコピーし、新しい質問を追加するためのコード例を示す。

 function advancedCopyForm() {
 var originalForm = FormApp.openById('フォームのID');
 var newForm = originalForm.copy('Advanced 新しいフォーム');
 var items = originalForm.getItems();
 items.forEach(function(item) {
 newForm.addItem(item.duplicate());
 });
 newForm.addSectionHeaderItem().setTitle('新しいセクション');
 Logger.log('Advanced 新しいフォームID: ' + newForm.getId());
} 

最初にフォームをコピーし、次にgetItems()で元のフォームから質問を取得し、それを新しいフォームに追加する。

そして、最後に新しいセクションを追加することで完全な複製ができるのさ。