Google Apps Script(GAS)は、Googleの各種サービスと連携し、効率的なプロジェクト管理ツールを作成するのに最適なツールです。この記事では、GASを使ってGoogleスプレッドシートをベースにしたプロジェクト管理ツールの作成方法を解説します。
プロジェクト管理ツールの基本機能
プロジェクト管理ツールには以下の基本機能が必要です:
- タスクの追加と管理
- 進捗状況の追跡
- チームメンバーへの通知
- 締め切りのリマインダー
スクリプトエディタを開く
まず、Googleドライブで新しいGoogleスプレッドシートを作成します。その後、ツール > スクリプトエディタを選択します。
プロジェクト管理ツールの作成
1. タスクの追加と管理
スプレッドシートにタスクを追加するためのスクリプトを作成します。以下は、タスクの追加機能を実装する例です。
function addTask(taskName, dueDate, assignee) {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
sheet.appendRow([taskName, dueDate, assignee, '未完了']);
}
function onOpen() {
var ui = SpreadsheetApp.getUi();
ui.createMenu('プロジェクト管理')
.addItem('タスクを追加', 'showTaskDialog')
.addToUi();
}
function showTaskDialog() {
var html = HtmlService.createHtmlOutputFromFile('TaskDialog')
.setWidth(400)
.setHeight(300);
SpreadsheetApp.getUi().showModalDialog(html, 'タスクを追加');
}
TaskDialog.htmlというHTMLファイルを作成し、タスクの追加フォームを作成します。
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
<form id="taskForm">
タスク名: <input type="text" id="taskName"><br>
締め切り: <input type="date" id="dueDate"><br>
担当者: <input type="text" id="assignee"><br>
</form>
<script>
function submitTask() {
google.script.run.addTask(taskName, dueDate, assignee);
google.script.host.close();
}
</script>
</body>
</html>
2. 進捗状況の追跡
タスクの進捗状況を更新するためのスクリプトを作成します。
function updateTaskStatus(row, status) {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
sheet.getRange(row, 4).setValue(status);
}
function onEdit(e) {
var sheet = e.source.getActiveSheet();
var range = e.range;
if (range.getColumn() == 4) {
var status = range.getValue();
var row = range.getRow();
updateTaskStatus(row, status);
}
}
3. チームメンバーへの通知
タスクの追加や変更をチームメンバーに通知するためのスクリプトを作成します。
function sendNotification(email, taskName, dueDate, status) {
var subject = 'タスクの更新通知';
var body = 'タスク "' + taskName + '" の状態が "' + status + '" に更新されました。締め切り: ' + dueDate;
MailApp.sendEmail(email, subject, body);
}
function onEdit(e) {
var sheet = e.source.getActiveSheet();
var range = e.range;
if (range.getColumn() == 4) {
var status = range.getValue();
var row = range.getRow();
var taskName = sheet.getRange(row, 1).getValue();
var dueDate = sheet.getRange(row, 2).getValue();
var assignee = sheet.getRange(row, 3).getValue();
sendNotification(assignee, taskName, dueDate, status);
}
}
4. 締め切りのリマインダー
締め切りのリマインダーを自動的に送信するためのスクリプトを作成します。
function sendDeadlineReminders() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var data = sheet.getDataRange().getValues();
var today = new Date();
for (var i = 1; i < data.length; i++) {
var taskName = data[i][0];
var dueDate = new Date(data[i][1]);
var assignee = data[i][2];
var status = data[i][3];
if (status == '未完了' && dueDate - today <= 2 * 24 * 60 * 60 * 1000) {
MailApp.sendEmail(assignee, '締め切りリマインダー: ' + taskName, 'タスク "' + taskName + '" の締め切りが近づいています。締め切り: ' + dueDate);
}
}
}
// 毎日午前9時にリマインダーを送信するトリガーを設定
ScriptApp.newTrigger('sendDeadlineReminders')
.timeBased()
.everyDays(1)
.atHour(9)
.create();
まとめ
GASを使ってGoogleスプレッドシートをベースにしたプロジェクト管理ツールを作成することで、タスクの追加、進捗状況の追跡、通知、リマインダーといった機能を効率的に実装できます。これにより、プロジェクト管理がスムーズに進み、チーム全体の生産性が向上します。この記事を参考にして、自分のニーズに合わせたプロジェクト管理ツールを作成してみてください。
参考リンク

