【GAS】Googleフォームで “Exception: Unexpected error while getting the method or property ~~”が発生する時の対処法

はじめに

2025年の10月ごろから”Exception: Unexpected error while getting the method or property ~~”というエラーとともに今まで動いていたGASのプログラムが動作しなくなったことはありませんか?

今回はこの現象の原因と対処法について紹介します。

エラーの原因

エラーの原因は2025年10月上旬に実施されたGoogleの仕様変更によるものであることがわかりました。

下記にGoogleのIssue Trackerのリンクを貼ります。

仕様変更の概要としては、「FormAppのItemクラスとしてsetTitle()などで変更できていた箇所がasCheckboxItem()などの質問の形式を明示する必要が出てきた」という点です。

今までの使用ではFormAppのItemクラスというオブジェクトで質問内容を変更する関数が動作していましたが、これらが総じてエラーが出るようになっています。

エラーの解決方法

Googleフォームの質問内容がすでにわかっていればasCheckboxItem()などを使用して質問内容を固定する方法はありますが、実際にプログラムを組む上ではそうではないケースが多いと思います。そこで、取得したフォームの質問内容の形式に合わせて処理を分岐する方法を紹介します。

// Googleフォームの質問タイトルを変更する関数
function UpdateFormItemTitle(Item, NewTitle) {
  var ItemType = Item.getType();  // アイテムのタイプを取得

  // アイテムタイプに応じてタイトルとヘルプテキストを変更
  switch (ItemType) {
    case FormApp.ItemType.CHECKBOX:
      // チェックボックスだった場合の処理
      let checkboxItem = Item.asCheckboxItem();
      checkboxItem.setTitle(NewTitle);
      break;
    case FormApp.ItemType.MULTIPLE_CHOICE:
      // 選択肢式だった場合の処理
      let multipleChoiceItem = Item.asMultipleChoiceItem();
      multipleChoiceItem.setTitle(NewTitle);
      break;
    case FormApp.ItemType.TEXT:
      // テキスト入力形式だった場合
      let textItem = Item.asTextItem();
      textItem.setTitle(NewTitle);
      break;
    case FormApp.ItemType.PARAGRAPH_TEXT:
      // 段落式テキスト入力だった場合
      let paragraphTextItem = Item.asParagraphTextItem();
      paragraphTextItem.setTitle(NewTitle);
      break;
    case FormApp.ItemType.SCALE:
      // スケールアイテムだった場合
      let scaleItem = Item.asScaleItem();
      scaleItem.setTitle(NewTitle);
      break;
    case FormApp.ItemType.DATE:
      // 日付入力形式だった場合
      let dateItem = Item.asDateItem();
      dateItem.setTitle(NewTitle);
      break;
    case FormApp.ItemType.TIME:
      // 時間入力形式だった場合
      let timeItem = Item.asTimeItem();
      timeItem.setTitle(NewTitle);
      break;
    default:
      Logger.log('Unsupported item type: ' + ItemType);
      break;
  }
}

上記のコードではFormItemクラスを第一引数に、新たな質問タイトルを第二引数にしたフォーム内容の修正用関数になります。

上記のコードではgetType()関数によって質問内容の形式を取得してcase文で分岐処理をしています。

このように質問内容に合わせてFormItemクラスを質問内容に合わせたクラスに変換することでエラーが発生しなくなります。

おわりに

今回は急に発生したGoogleAppsScriptのエラーに対しての対処法を紹介しました。

Google Work Spaceなどのクラウドサービスはある日突然仕様変更が発生しますので、臨機応変に対応が必要になります。

もし、上記以外のエラーが発生した場合は本記事の下部にあるコメントよりご連絡お待ちしております。

最後まで読んでくれてありがとうございました!!

よかったらお気に入り登録をお願いします!!!!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です