まずは、アイテムがどんな種類なのかを確認したいと思います。
種類を知るには、getType() を使います。
そのために、まずgetItems() で取得したItem一覧から、Itemを一つ取り出す必要があります。
もう少し詳しく説明すると、getItems() で取得したデータは、[Item, Item]というようにすべてパッケージされた形になっています。([]で囲まれたものを配列といいます。)
この配列から一つのItemを別の名前で取り出して、そこにgetType() を使っていきます。
実際のソースはこちら
function myFunction() { // フォームを開く const form = FormApp.openByUrl('https://docs.google.com/forms/d/********/edit'); //フォームの要素を配列で取得 const items = form.getItems(); Logger.log(items); const itemparts = items[0]; //itemという配列の0番目の要素をitempartsとして取り出す。 const itemType = itemparts.getType(); //取得したitempartsのタイプを確認してitemTypeに保管 Logger.log(itemType); }
すると、結果はこちら
取得したフォームの1つ目の要素は、「MULTIPLE_CHOICE」つまり、ラジオボタンタイプだということがわかりました。
↓実際に取得したフォーム
ちなみに、const itemparts = items[0]; をconst itemparts = items[1]; とすると、次の項目のタイプである「TEXT」つまりテキストボックスであるという情報が返ってきます。
ついでに、質問内容も取得してみます。
function myFunction() { // フォームを開く const form = FormApp.openByUrl('https://docs.google.com/forms/d/1Trzflgb3lYE94ouyfuh4Xc6qezQZftl4cj-xpoCVVgw/edit'); //フォームの要素を配列で取得 const items = form.getItems(); Logger.log(items); const itemparts = items[0]; //itemという配列の0番目の要素をitempartsとして取り出す。 const itemType = itemparts.getType(); //取得したitempartsのタイプを確認してitemTypeに保管 const itemText = itemparts.getTitle();//取得したitempartsの質問内容を確認してitemTextに保管 Logger.log(itemType); Logger.log(itemText); }
実行結果
おおお、だいぶ近づいてきた気がする…
とりあえず、これをスプレッドシートに転記できれば、(細かいことを抜きにすれば)アプリの大まかな形はできたんじゃ・・・。
全体像を見て達成感を味わうために、次は取得した情報をスプレッドシートに書き込んでみます。
コメント