GASで予算管理フォームを効率化!MultipleChoiceItem.setChoiceValuesで柔軟な選択肢を設定
予算管理におけるフォーム作成、特に選択肢の設定は非常に重要です。GAS(Google Apps Script)のMultipleChoiceItem.setChoiceValuesを使うことで、予算項目や金額範囲などを柔軟に設定し、入力ミスを減らし、効率的なデータ収集を実現できます。この記事では、MultipleChoiceItem.setChoiceValuesの基本から、財務・会計業務での応用例、よくある問題とその解決策、カスタマイズ方法までを詳しく解説します。
MultipleChoiceItem.setChoiceValuesとは?
MultipleChoiceItem.setChoiceValuesは、Googleフォームの複数選択式質問項目(MultipleChoiceItem)の選択肢を設定するためのGASの関数です。この関数を使用することで、フォームの選択肢を動的に変更したり、スプレッドシートなどの外部データに基づいて選択肢を生成したりすることができます。
基本的な使い方
MultipleChoiceItem.setChoiceValuesは、MultipleChoiceItemオブジェクトに対して使用します。まず、フォームのアイテムとしてMultipleChoiceItemを作成し、そのsetChoiceValuesメソッドに選択肢の配列を渡します。
// フォームを作成または取得
function createForm() {
let form = FormApp.create('予算申請フォーム');
// 複数選択式の質問項目を作成
let item = form.addMultipleChoiceItem();
item.setTitle('申請する予算項目を選択してください');
// 選択肢を設定
let choices = ['開発費', '広告費', '人件費', 'その他'];
item.setChoiceValues(choices);
return form;
}
財務・会計業務での実装方法
財務・会計業務では、予算管理、経費精算、請求書作成など、さまざまな場面でフォームが利用されます。MultipleChoiceItem.setChoiceValuesを活用することで、これらのフォームをより効率的かつ正確にすることができます。
予算管理フォーム
予算管理フォームでは、申請する予算項目や金額範囲を選択肢として設定できます。これにより、申請者は選択肢の中から適切な項目を選択するだけでよくなり、入力ミスを減らすことができます。
// 予算項目をスプレッドシートから取得し、フォームに設定
function setBudgetItemsToForm() {
// スプレッドシートから予算項目を取得
let ss = SpreadsheetApp.getActiveSpreadsheet();
let sheet = ss.getSheetByName('予算項目');
let lastRow = sheet.getLastRow();
let budgetItems = sheet.getRange(2, 1, lastRow - 1, 1).getValues().flat(); // 2行目からデータ取得、1列のみ
// フォームを取得
let form = FormApp.openById('フォームID');
// 予算項目を選択肢として設定
let item = form.getItemById('アイテムID').asMultipleChoiceItem();
item.setChoiceValues(budgetItems);
}
経費精算フォーム
経費精算フォームでは、経費の種類(交通費、宿泊費、食費など)を選択肢として設定できます。また、金額範囲をプルダウンで選択できるようにすることで、経費の入力作業を簡素化できます。
// 経費の種類と金額範囲を選択肢として設定
function setExpenseTypesToForm() {
// 経費の種類
let expenseTypes = ['交通費', '宿泊費', '食費', '消耗品費', '通信費', 'その他'];
// フォームを取得
let form = FormApp.openById('フォームID');
// 経費の種類を選択肢として設定
let item = form.getItemById('アイテムID').asMultipleChoiceItem();
item.setChoiceValues(expenseTypes);
}
請求書作成フォーム
請求書作成フォームでは、商品やサービスの種類、数量、単価などを選択肢として設定できます。これにより、請求書の作成時間を短縮し、入力ミスを防ぐことができます。
// 商品・サービスの種類をスプレッドシートから取得し、フォームに設定
function setProductServicesToForm() {
// スプレッドシートから商品・サービスの種類を取得
let ss = SpreadsheetApp.getActiveSpreadsheet();
let sheet = ss.getSheetByName('商品・サービス');
let lastRow = sheet.getLastRow();
let productServices = sheet.getRange(2, 1, lastRow - 1, 1).getValues().flat(); // 2行目からデータ取得、1列のみ
// フォームを取得
let form = FormApp.openById('フォームID');
// 商品・サービスの種類を選択肢として設定
let item = form.getItemById('アイテムID').asMultipleChoiceItem();
item.setChoiceValues(productServices);
}
よくある問題とトラブルシューティング
- 選択肢が更新されない: フォームのアイテムIDが正しいか確認してください。また、スクリプトの実行権限が適切に設定されているか確認してください。
- 選択肢が多すぎる: 選択肢が多すぎると、フォームの入力が煩雑になります。選択肢をカテゴリ分けしたり、検索機能を導入したりすることを検討してください。
- 選択肢の順番が固定されない:
MultipleChoiceItemには選択肢の順番を固定する機能はありません。順番を固定したい場合は、別の方法を検討する必要があります。
カスタマイズ方法と応用例
- 選択肢の動的な更新: スプレッドシートのデータが変更された際に、自動的にフォームの選択肢を更新することができます。
onChangeトリガーを使用することで、スプレッドシートの変更を検知し、フォームの選択肢を更新することができます。 - 条件分岐による選択肢の表示: フォームの回答内容に応じて、表示する選択肢を変更することができます。例えば、予算項目が「開発費」の場合には、開発費に関する詳細な選択肢を表示することができます。
- 外部APIとの連携: 外部APIから取得したデータを選択肢として設定することができます。例えば、為替レートAPIから取得した通貨ペアを選択肢として設定することができます。
まとめ
MultipleChoiceItem.setChoiceValuesは、GASを使ってGoogleフォームの複数選択式質問項目の選択肢を柔軟に設定するための強力なツールです。財務・会計業務において、予算管理、経費精算、請求書作成などのフォーム作成を効率化し、入力ミスを減らすことができます。この記事で紹介したコード例やトラブルシューティングを参考に、ぜひMultipleChoiceItem.setChoiceValuesを活用してみてください。

CodeCampは、現役エンジニアからマンツーマンで学べるオンラインプログラミングスクールです。WebデザインやWebサービス開発、転職支援など、目的に合わせた多様なコースが選べます。
朝7時〜夜23時40分まで、365日レッスンが受けられるため、忙しい方でも自分のペースで学習を進めることが可能です。通過率8%の厳しい選考を通過した質の高い講師陣が、あなたのキャリアチェンジを強力にサポートします。
さらに、未経験者向けのカリキュラムや、学習開始から20日以内の全額返金保証制度もあるため、プログラミング学習に不安を感じている方でも安心して始めることができます。
CodeCampで理想の働き方を実現しよう