DocumentApp.getActiveDocumentでGoogleドキュメントをプロジェクト管理に活用!進捗管理を自動化

DocumentApp.getActiveDocumentでGoogleドキュメントをプロジェクト管理に活用!進捗管理を自動化

本記事では、Google Apps Script(GAS)のDocumentApp.getActiveDocument()関数を用いて、Googleドキュメントをプロジェクト管理、特に進捗管理に活用する方法を解説します。プロジェクトの進捗状況をリアルタイムに把握し、タスク管理やリソース管理を効率化するための具体的なコード例とカスタマイズ方法を紹介します。

DocumentApp.getActiveDocument()とは

DocumentApp.getActiveDocument()は、現在開いているGoogleドキュメントを取得するためのGASの関数です。この関数を使うことで、ドキュメントの内容を読み込んだり、編集したり、様々な操作をスクリプトから実行できます。

基本的な使い方

基本的な使い方は非常にシンプルで、以下のようになります。

function getActiveDocument() {
const doc = DocumentApp.getActiveDocument();
const body = doc.getBody();
Logger.log(body.getText());
}

このコードは、現在開いているドキュメントの本文を取得し、ログに出力します。

プロジェクト管理におけるDocumentApp.getActiveDocument()の活用

プロジェクト管理において、Googleドキュメントは議事録、タスクリスト、進捗報告書など、様々な用途で利用されます。DocumentApp.getActiveDocument()を使うことで、これらのドキュメントから情報を抽出し、集計したり、他のツールと連携させたりすることが可能になります。

進捗管理の実装例

ここでは、Googleドキュメントで作成されたタスクリストから、進捗状況を自動的に集計するスクリプトを例として紹介します。

タスクリストのフォーマット

ドキュメント内のタスクリストは、以下のような形式で記述されていることを想定します。

  • [ ] タスクA
  • [x] タスクB (完了)
  • [ ] タスクC

[ ]は未完了、[x]は完了を表します。

スクリプトの例

function updateProgress() {
const doc = DocumentApp.getActiveDocument();
const body = doc.getBody();
const text = body.getText();
const tasks = text.split('\n');
let totalTasks = 0;
let completedTasks = 0;

for (let i = 0; i < tasks.length; i++) {
if (tasks[i].includes(' タスク')) { // タスクの行を判別
totalTasks++;
if (tasks[i].includes('[x]')) {
completedTasks++;
}
}
}

const progress = (completedTasks / totalTasks) * 100;
Logger.log('進捗率: ' + progress + '%');

// ドキュメントに結果を追記
body.appendParagraph('進捗率: ' + progress.toFixed(1) + '%');
}

このスクリプトは、ドキュメント内のタスクリストを解析し、完了したタスクの割合を計算して、ドキュメントの末尾に追記します。

スクリプトの解説

  • DocumentApp.getActiveDocument()でアクティブなドキュメントを取得。
  • body.getText()でドキュメント全体のテキストを取得。
  • text.split('\n')でテキストを改行で分割し、タスクの配列を作成。
  • タスクの配列をループで処理し、[x]が含まれているタスクを完了タスクとしてカウント。
  • 進捗率を計算し、ログに出力。
  • body.appendParagraph()でドキュメントに結果を追記。

タスク管理の実装例

タスクの追加、更新、削除をスクリプトから行うことも可能です。例えば、新しいタスクをドキュメントの先頭に追加するスクリプトは以下のようになります。

function addTask(taskName) {
const doc = DocumentApp.getActiveDocument();
const body = doc.getBody();
body.insertParagraph(0, '[ ] ' + taskName);
}

このスクリプトは、ドキュメントの先頭に新しいタスクを追加します。引数taskNameには、追加するタスクの名前を指定します。

リソース管理への応用

ドキュメント内にリソースの割り当て状況を記述し、スクリプトで解析することで、リソース管理を効率化できます。例えば、各タスクの担当者をドキュメントに記述し、スクリプトで集計することで、各担当者の負荷状況を把握することができます。

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

スクリプトが動作しない

スクリプトが動作しない場合、以下の点を確認してください。

  • GASのエディタで、スクリプトの実行権限が許可されているか。
  • ドキュメントのIDが正しいか。
  • スクリプトにエラーがないか(GASのエディタでエラーを確認できます)。

進捗率が正しく計算されない

進捗率が正しく計算されない場合、タスクリストのフォーマットがスクリプトの想定通りになっているか確認してください。特に、[ ][x]の記述に誤りがないか注意が必要です。

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

スプレッドシートとの連携

DocumentApp.getActiveDocument()で取得した情報をスプレッドシートに書き出すことで、より詳細な分析やグラフ作成が可能になります。SpreadsheetAppクラスを使うことで、スプレッドシートへの書き込みを簡単に行うことができます。

Slackとの連携

進捗状況やタスクの更新をSlackに通知することで、チーム全体の情報共有を促進できます。UrlFetchAppクラスを使うことで、SlackのAPIを呼び出し、メッセージを送信することができます。

まとめ

DocumentApp.getActiveDocument()関数を使うことで、Googleドキュメントをプロジェクト管理に有効活用できます。進捗管理、タスク管理、リソース管理など、様々な業務課題を解決するためのスクリプトを開発し、日々の業務を効率化しましょう。

PR

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

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