GASでプロジェクト管理を効率化!Form.addMultipleChoiceItemで進捗状況をスマートに把握

GASでプロジェクト管理を効率化!Form.addMultipleChoiceItemで進捗状況をスマートに把握

プロジェクト管理において、進捗状況の把握は非常に重要です。しかし、メールやチャットでの確認は手間がかかり、情報が散在しがちです。そこで、Google Apps Script (GAS) の Form.addMultipleChoiceItem を活用することで、進捗状況のアンケートフォームを簡単に作成し、効率的に情報を収集・管理できます。

Form.addMultipleChoiceItemとは?

Form.addMultipleChoiceItem は、Googleフォームにラジオボタン形式の質問項目を追加するためのGASの関数です。この関数を使用することで、回答者は複数の選択肢の中から一つを選ぶことができます。プロジェクトの進捗状況を「未着手」「進行中」「完了」などの選択肢で簡単に報告してもらうことができます。

プロジェクト管理におけるForm.addMultipleChoiceItemの実装方法

ここでは、プロジェクト管理における進捗管理、タスク管理、リソース管理の各シチュエーションで Form.addMultipleChoiceItem を活用する方法を解説します。

進捗管理

プロジェクト全体の進捗状況を定期的に把握するために、各タスクの進捗状況を報告するフォームを作成します。

function createProgressForm() {
// フォームを作成
const form = FormApp.create('プロジェクト進捗状況アンケート');

// 質問項目を追加
form.addMultipleChoiceItem()
.setTitle('タスクの進捗状況')
.setChoiceValues(['未着手', '進行中', '完了'])
.setRequired(true);

// フォームのURLをログに出力
Logger.log(form.getPublishedUrl());
}

このコードを実行すると、「プロジェクト進捗状況アンケート」という名前のGoogleフォームが作成されます。回答者は「タスクの進捗状況」に対して、「未着手」「進行中」「完了」のいずれかを選択し、回答を送信できます。

タスク管理

各タスクの担当者に、タスクの完了状況を報告するフォームを作成します。タスクごとにフォームを作成するのではなく、一つのフォームで複数のタスクの進捗を報告できるようにします。

function createTaskProgressForm() {
// スプレッドシートからタスクリストを取得
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet = ss.getSheetByName('タスクリスト');
const taskList = sheet.getDataRange().getValues();

// フォームを作成
const form = FormApp.create('タスク完了報告');

// タスクリストを基に質問項目を追加
for (let i = 1; i < taskList.length; i++) { // 1行目はヘッダーのためスキップ
const taskName = taskList[i][0];
form.addMultipleChoiceItem()
.setTitle(taskName + ' は完了しましたか?')
.setChoiceValues(['はい', 'いいえ'])
.setRequired(true);
}

// フォームのURLをログに出力
Logger.log(form.getPublishedUrl());
}

このコードは、スプレッドシートの「タスクリスト」シートからタスク名を取得し、それぞれのタスクについて「はい」または「いいえ」で回答する質問項目をフォームに追加します。スプレッドシートの1列目にタスク名が記載されていることを前提としています。

リソース管理

各リソース(人員や機材)の稼働状況を把握するために、リソースの利用状況を報告するフォームを作成します。

function createResourceUsageForm() {
// フォームを作成
const form = FormApp.create('リソース利用状況報告');

// 質問項目を追加
form.addMultipleChoiceItem()
.setTitle('本日の〇〇(リソース名)の利用状況')
.setChoiceValues(['利用可能', '利用中', '利用不可'])
.setRequired(true);

// フォームのURLをログに出力
Logger.log(form.getPublishedUrl());
}

このコードは、リソースの利用状況を「利用可能」「利用中」「利用不可」のいずれかで回答する質問項目をフォームに追加します。リソース名をタイトルに含めることで、どのリソースの状況を報告しているのかを明確にできます。

実用的なコード例

上記の例を組み合わせ、より実用的なコード例を紹介します。この例では、スプレッドシートからタスクリストを読み込み、各タスクの進捗状況を報告するフォームを作成し、回答結果をスプレッドシートに記録します。

function createAndProcessTaskForm() {
// スプレッドシートからタスクリストを取得
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet = ss.getSheetByName('タスクリスト');
const taskList = sheet.getDataRange().getValues();

// フォームを作成
const form = FormApp.create('タスク進捗報告フォーム');

// タスクリストを基に質問項目を追加
for (let i = 1; i < taskList.length; i++) { // 1行目はヘッダーのためスキップ
const taskName = taskList[i][0];
form.addMultipleChoiceItem()
.setTitle(taskName + 'の進捗状況')
.setChoiceValues(['未着手', '進行中', '完了'])
.setRequired(true);
}

// 回答をスプレッドシートに記録する設定
form.setDestination(FormApp.DestinationType.SPREADSHEET, ss.getId());

// フォームのURLをログに出力
Logger.log(form.getPublishedUrl());
}

このコードを実行すると、タスクリストに基づいて質問項目が作成されたフォームが作成され、回答結果は自動的にスプレッドシートに記録されます。

よくある問題とトラブルシューティング

  • フォームが作成されない:GASの実行権限が付与されているか確認してください。
  • スプレッドシートに回答が記録されない:フォームの回答先が正しく設定されているか確認してください。form.setDestination が正しく設定されているか確認してください。
  • タスクリストが正しく読み込まれない:スプレッドシート名、シート名が正しいか、タスクリストが1列目に正しく記載されているか確認してください。

カスタマイズ方法と応用例

  • 回答に応じて処理を分岐:フォームの回答に基づいて、特定の担当者にメールを送信したり、タスク管理ツールを更新したりすることができます。
  • 定期的なフォーム送信:トリガーを設定することで、定期的にフォームを送信し、進捗状況を自動的に収集することができます。
  • 条件付きの質問項目:回答に応じて、追加の質問項目を表示することができます。例えば、「進行中」を選択した場合に、進捗率を入力させるなどのカスタマイズが可能です。

まとめ

GASの Form.addMultipleChoiceItem を活用することで、プロジェクト管理における進捗状況の把握を効率化できます。この記事で紹介したコード例を参考に、ぜひご自身のプロジェクトに合わせてカスタマイズし、より効果的なプロジェクト管理を実現してください。

PR

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

CodeCampで理想の働き方を実現しよう