プロジェクトを進めていくにあたって、必ず必要となってくる「タスク」。
皆さんはどのように管理されていますでしょうか?
マネジメントをされている方であれば非常に共感していただけるとは思いますが、一つのプロジェクトを達成するためには、「抽象的な”ミッション”から具体的な”タスク”に卸していく作業」が必ずと言っていいほど介入してきます。
これが!また!非常に頭を捻らせる作業なんですよね~。
「どこからどこまでをタスクとするのか?」
「本当にこれらのタスクを追っていけば、ミッションは達成されるのか?」
「タスク一つ一つにかかる時間数はこれで最適なのか?」
「どこまで細かくタスクを設定すれば、円滑なプロジェクトマネジメントが可能になるのか?」
…タスク管理については考えれば考えるほど、髪の毛が抜けていく気がします。
僕の経験則にはなりますが、細かく具体的にタスクを制定していけばいくほど、プロジェクト管理はしやすくなる傾向にあると思っています。
ですので、タスク設定時には「具体的なタスク名」「タスクにかかる時間数」「担当者」の3項目くらいは、最低限設定しておくと良かったりしますね。
そして!
そうして細かく具体的にタスクを区切っていくと…。
「タスクリスト」はものすごい数になっていくわけですね。笑
まぁしょうがないでしょう。追うべきタスクが明確になっていることも、お仕事がたくさんあることも良いことです。
ただ一つ…ものすごく面倒で嫌なのが…。
「数多くのタスクリストを作成していくという作業」です。
も~これが嫌すぎる。本当に嫌すぎるんですね。
「タスクリストを作成する」という”謎のタスク”が、ものすごい時間数になってくるわけです。(大事なんですけどね!非常に!w)
これどうにかならんかな~。と。
「プロジェクトを最短最速で達成するためにタスク管理してるのに、タスクリストの作成作業でものすごい時間取られちゃってるよ~。」なんてことになるわけです。
しかも弊社は、タスク管理はGoogleTODOリストで行っているわけなんですが…。
毎回Googleカレンダーに入って、一つ一つタスクを作成するのが非効率すぎる。
「いや、そんなん一つ一つやればいいやないか…。」
と感じるかたもいらっしゃるかとは思いますが…。
1つのプロジェクトを形にするために、平均20~50個程度のマイクロタスクを制定して、それらを一つ一つ手作業でタスク作成していくのは、なんとも面倒なんですよね。
しかもだいたいは、Googleスプレットシートで計画を立てて、それをGoogleTODOリストに転記してるので…。
「なんかこれ、二度手間やないかい!」
と毎回思っているわけです。(毎回思っているのは僕だけかもしれません)
そこで今回は、夜な夜なGoogleスプレットシートとGoogle Apps Scriptをいじりまして…。
「Googleスプレットシートで作った大量のタスクリストを、GoogleTODOリストに自動反映させるツール」を作成しました。
- タスクは細かく具体的に、期日も明確に決めていかないと気が済まない。
- Googleスプレットシートで細かいタスクや担当者情報を整理することが多い。
- Googleカレンダー及びGoogleTODOリストでのタスク管理をもっと効率化したい。
今回は、上記のような方にとっては、非常に役に立つ情報なのではないかと思っています。
実際にどのようなツール(ツールというか、ただのスプシだけども)なのか、どのように作成するのかを解説し、最後には自分でいじれるサンプル版のスプレットシートも配布しています。
似たようなツールを開発されている方もいらっしゃいますが、今回作成したツールではタスク名に「担当者」と「所要時間」も転記されるようにしているので、タスクリストを一望するだけで「誰がどれくらいかかるタスクなのか」がわかる仕様にしています。
ちょっと気になるなー。と思われた方は、ダラダラと読み進めていただけますと幸いです。
※ちなみに弊社のタスク管理で「GoogleTODOリスト」を使用しているのは、Notionなどの高機能便利ツールを使いこなせなかったからですw シンプルで最低限の機能しかない、かつスケジュール管理しているGoogleカレンダーと一緒に使える利点が、非常に気に入っています。
では、本編どうぞ。
「スプレットシートにある大量のタスクリストを、自動でGoogleTODOリストに反映させるツール」ってどんなの?
…
「ツール」なんてカッコいい呼び方していますが、ただのスプレットシートです。笑
しかし、そのスプレットシート自体に「Google Apps Script」を使用して「ボタン一つで勝手に動いた( ゚Д゚)!」となるような拡張機能を実装しています。
Google Apps Scriptとは、Googleによって開発されたスクリプトプラットフォームである軽量のアプリケーション開発のためのGoogleのワークスペースプラットフォーム。 主にGoogleのサービスを自動化するスクリプト言語である。
引用:ウィキペディア
基本的な使い方をザックリ説明すると、以下の通りです。
- 拡張機能が実装されたスプレットシートを開き。
- 「追加するタスクリスト」「タスク名」「推定時間」「担当者」「詳細」を好きなだけ追加していく。
- スプレットシートのメニューバーから「インポート」をクリックする。
- Googleカレンダー及びGoogleTODOリストに、スプレットシート上に追加したタスク情報が全て反映されている。
うん!とっても簡単ですね!
大量の細かいタスクを、一気にTODOリストに反映させることができます。
(もちろん事前設定などはありますけどね)
では、実際にどんな感じなのか、スクショ付きで見てみましょう。
前提:細かいタスクリストを、Googleスプレットシートで毎回作成していると想定
まずは、前提として、仕事中に細かいタスクリストを作っているとします。笑
上記画像は弊社の場合ですが、だいたい一つのマーケティング施策を形にするために、こんな感じで情報をまとめていたりします。
(クライアント様との打ち合わせ中、こんな感じで情報まとめてる人、多いんでない?どうなの?w)
さて、この量のタスクを、GoogleTODOリストで一つ一つ設定していくのは面倒ですよね!
面倒…ですよねぇ?!
…。
ありがとうございます!次に進みましょう。
では、これらの大量のタスクを、GoogleTODOリストに反映させていきましょう。
工程①:シートを開いて、タスクインポート用のシートをコピー
スプレットシートを開くと、まずは概要説明のシートになっています。
これ以上ないほど、テキトーに概要説明を作ってしまいました。ご愛敬です。
スプレットシートのメニューバーに「🤖メニュー」という、自前で作ったカスタムメニューがあります。
こちらにマウスカーソルを合わせると、プルダウンメニューが現れます。
「TODOリスト設定シートをコピー」を選択しましょう。
すると、このようなポップアップが表示されると思います。
スプレットシート下部には、新しいシート「(シート名を変更して使用してください)」が追加されていると思います。開いてみましょう。
ひな型だけが入力された、空のシートが出てきたら、準備完了です。
工程②:実際にタスク情報(リスト,推定時間,担当者,期日)を入力
はい、先ほどお見せした、大量の細かいタスクリスト…。
コピーペーストしてしまいましょう!
次に、GoogleTODOリストの中の、”どのリストにタスクを設定したいか”を決めていきます。
このリストは、入力規制でプルダウン式に設定できるようにしています。
皆さんのGoogleTODOリストに合わせて、リスト名を設定していただければと思います。
では次に、タスク一つ一つにかかる推定時間を入力していきます。
僕の場合は、「5分、15分、30分、60分、90分、120分」で分けて選択できるようにしています。
これらの分け方は、人それぞれ好みに合わせて設定してみるといいです。
ちなみに僕は、タスク設定するときは”60分以上のタスクは作らない”ように心がけています。
理由は、「嫌いだから」です。笑
(まぁそれでも、できちゃうんだけどね…。)
実際、感情論抜きで、60分以上のタスクを作らないようにするのはオススメです。
消化しやすいタスクを設定することは、プロジェクトを進めやすくするための定石かなと。
(従業員のモチベ管理や、進行状況の可視化など、いろんな面を含めてね)
次に、担当者と期日を設定していきます。
こんな感じですね。
詳細については、”あれば入力”くらいで大丈夫です。
(そもそも、詳細が不要になるくらいタスクを細分化できればいいよね)
さて、ここまでくれば、準備完了です。
ちなみに、項目を埋めていく順番は関係ありません。順不同です。
工程③:作成したタスクリストのシート名を「IMPORT」に変更して、インポートボタンをクリック
それでは、作成したタスクリストのシート名を「IMPORT」に変更しましょう。
その後、スプレットシート上部の「🤖メニュー」内の、「TODOリストへインポート」ボタンをクリックします。
これでインポート作業は完了です。
あっという間ですね!えっへん!
工程④:GoogleTODOリストにタスクが反映されているかを確認して終了
実際にGoogleTODOリストを開いて、タスクが正常にインポートされているかどうかを確認しましょう。
上記は、実際にツールでタスクを自動反映させたあとの、GoogleTODOリストのスクショです。
Googleカレンダーにも、問題なく反映されています。
ここで注目してほしいのが、タスク名の両端に「お猿さんマーク」と「*90min」がついているということ。
弊社では、従業員それぞれに決まった動物アイコンがありまして…。
今回のツールでは、タスク名の最初に、各担当者を示す動物アイコンを自動反映させる機能も付け加えました。
(これはあくまで弊社仕様です。無料サンプルでは、スプレットシートに入力した”担当者名”がそのままタスク名の最初に入力されるようになっています。)
そして、スプレットシートにて入力した推定時間も、タスク名の後ろに自動で入力されるようにしています。
この機能により、「誰のタスクなのか」「どれくらいかかるタスクなのか」がすぐに把握できるということですね。
…
…ええ、動物園です。
スプレットシートにある大量のタスクリストを、自動でGoogleTODOリストに反映させるツールの作り方
ではここからは、このツールの作り方を解説していきます。
コピペのみで簡単に作れる!と思いますので、ぜひトライしてみてください。
スプレットシートでひな型を用意
まずはこんな感じで、ひな型を作ってしまいましょう。
B列、D列、E列の入力規制については、自身の好きなようにカスタマイズしていただければと思います。
拡張機能からGoogle Apps Scriptを開いて、JavaScriptコードを入力
スプレットシートメニューバーの「拡張機能」内から、「Apps Script」を選択します。
すると、コードを入力する画面になるので、下記2つのコードを貼り付けます。
スプレットシートからGoogleTODOリストへ転記するコード
function createGoogleTasksFromSpreadsheet() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("IMPORT");
const lastRow = sheet.getLastRow();
const taskListService = Tasks.Tasklists.list();
const taskListNames = taskListService.items.map(item => item.title);
const taskLists = {};
taskListService.items.forEach(item => {
taskLists[item.title] = item.id;
});
for (let i = 2; i <= lastRow; i++) {
const no = sheet.getRange(i, 1).getValue();
if (!no) continue; // タスク番号がない行をスキップ
const listName = sheet.getRange(i, 2).getValue();
const taskName = sheet.getRange(i, 3).getValue();
const estimatedTime = sheet.getRange(i, 4).getValue();
const assignee = sheet.getRange(i, 5).getValue();
const deadline = sheet.getRange(i, 6).getValue();
const details = sheet.getRange(i, 7).getValue();
if (!taskListNames.includes(listName)) {
Logger.log(`タスクリスト「${listName}」が見つかりません。タスク作成をスキップします。`);
continue;
}
let taskTitle = `${assignee}${taskName}*${estimatedTime}`; // 担当者名をタスク名の最初に追加
// スプレッドシートの日付に1日を追加して調整
let dueDate = new Date(deadline);
dueDate.setDate(dueDate.getDate() + 1); // 1日追加して調整
dueDate.setUTCHours(0, 0, 0, 0); // 日付をUTCの午前0時に設定
let isoDate = dueDate.toISOString(); // ISO 8601形式に変換
let task = {
title: taskTitle,
due: isoDate, // 調整後の日付を設定
notes: details || ''
};
Tasks.Tasks.insert(task, taskLists[listName]);
}
}
※弊社仕様の動物アイコンが表示される機能は除いています。
スプレットシートのカスタムメニューを作成するコード
function onOpen() {
const ui = SpreadsheetApp.getUi();
ui.createMenu('🤖メニュー')
.addItem('TODOリストにインポート', 'createGoogleTasksFromSpreadsheet')
.addToUi();
}
Google Apps ScriptからTODOリスト連携用のAPIを追加
Google Apps Scriptの左側メニューから「サービス」をクリックし、そこから「Google Tasks API」を追加します。
Google Apps Scriptを保存して、実行→承認
それでは、一度「保存」ボタンを押して、その次に「実行」ボタンをクリックしてみましょう。
一番最初の実行時は、必ず上記のような権限認証を求められます。
そのまま「権限を確認」ボタンをクリックして、使用しているGoogleアカウントを選択していきましょう。
次に、このような警告画面が出てくると思いますが、「詳細」をクリックして、一番下のスプレットシートへのリンクをクリックします。
すると、このような画面に進むと思います。そのまま「許可」をクリックして、権限認証完了です。
シート名を「IMPORT」に変更して、動作確認して終了
スプレットシートに戻って、シート名を「IMPORT」に変更しましょう。
(変更しないと、動作しません)
そして、実際に前述している通り、ツールを動かしてみてください。
正しく設定ができていれば、正常にインポートされるはずです。…はずです…。
【無料サンプル配布】即導入できるサンプルシートはコチラ
とまぁ、ここまで作り方を解説してみましたが。
「作るのめんどいや!」って人は、下記にサンプルシートを共有しておきますので、こちらをご使用ください。
(閲覧用になってますので、ご自身のGoogleドライブに”コピー”してご使用ください)
では、皆さんのビジネスライフがより良いものになることを祈っております。
おやすみなさい。