プロが書く美しいコードじゃない、素人の稚拙なコードだからこそ、得られるものだってきっとある…そんな思いでコードを公開しています。どうぞ生暖かく見守ってください。

Google Apps Script アイテムタイプを取得する

[tool1]フォームをシートに書き出しGoogle Apps Script

まずは、アイテムがどんな種類なのかを確認したいと思います。

種類を知るには、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);
}

実行結果

おおお、だいぶ近づいてきた気がする…

とりあえず、これをスプレッドシートに転記できれば、(細かいことを抜きにすれば)アプリの大まかな形はできたんじゃ・・・。

全体像を見て達成感を味わうために、次は取得した情報をスプレッドシートに書き込んでみます。

コメント

タイトルとURLをコピーしました