過去記事
メール

TaskChute 2週間後(ガントチャートの完成)

関連記事----TaskChuteの投稿一覧
管理人注記----VBAコードについて

2週間ほど経ちましたが,TaskChuteは,今や完全に私の仕事を管理するようになりました。
もはやToodledoは使用していません。かわいそうなToodledo。バッグを買うほどの意気込みだったのに…

そこまでTaskChute使うようになったのは,ガントチャート描画の完成にあります。

TaskChuteをtodoリスト的に扱えばガントチャートは特に必要ないのですが,明日の予定を組み立てたい時など,タスクの開始時間や見積り時間などが数値だけだと,どうしても仕事の流れをイメージすることが難しく、ガントチャートが欲しくなります。やはり,文系人間はビジュアル表示でないと理解が追いつきません。

TaskChute 2週間後(ガントチャートの完成)

こんな風に,時間がダブっていたり,いつやるか時間を決めていなかったタスクも
ガントチャートを見ながら,開始時間をチョイチョイと調整し昇順に並び直せば
こうなります。


TaskChute 2週間後(ガントチャートの完成)
ルーチンワークやミーティング,面会予定などは実行する時間がだいたい決まっているのですが,その他の仕事については『1日の中で空いている時間にやろう』という考え方をします。
そういった仕事は,前々から(発生した段階で)日にちと見積もり時間だけ決めて,タスクにどんどん書き込んでおきます。そして,前日になったら開始時間を整理する…というやり方が,すごくハマります。

なお、ガントチャートのVBAには、IYN blog:「Excel でガントチャート描画」の VBA 公開を参考にさせていただいています。ありがとうございます。
以下のVBAですが、この投稿の先頭に「VBAコードについて」という注意を記しましたが、さらにマズいことに明らかに不備があります。
If Target Is Nothing Then のあとの動作が書いてありません。…それでも問題なく?動く…という素人判断で、そのままにしています。
このマクロ、何をしているかと言うと、「そのタスクの行(横軸)で、開始時間の列(縦軸)と交わったセルから、見積もり分数を5で割った数だけのセルに色を付ける」という作業を、8行目からB列の値が記入されている最後の行まで繰り返しています。
Sub ガントチャート()
    Dim myTime As Variant
    Dim x As Integer, y As Integer, myCount As Integer
    Dim Target As Object
 
    Application.ScreenUpdating = False
'ガンチャート部分をクリア
    Workbooks("タスクシュート.xls").Worksheets("メイン").Activate
    Range("P8:EF1000").Interior.ColorIndex = False
'ガントチャートを描画
    x = 8
    Do While Cells(x, 2) <> ""
        myTime = Range("M" & x).Text 'タスクの開始時
        myCount = Application.WorksheetFunction.Round(Range("K" & x).Value / 5, 0)  '見積分数を5で割ったコマ数
        Set Target = Range("P6:EF6").Find(myTime)
        If Target Is Nothing Then
        Else
        y = Target.Column
        Range(Cells(x, y), Cells(x, y + myCount - 1)).Interior.ColorIndex = 5
        End If
    x = x + 1
    Loop
    Application.ScreenUpdating = True
End Sub
ガントチャートを描画させるためには、VBAだけでなくシートの方へも細工が必要です。
P6からEF6までのセルに時間の記述
P6からEF6までのセルの書式設定の表示形式を文字列として、P6のセルに「8:00」と値を入れ、右方向のセルに順次「8:05」「8:10」「8:15」…〈5分おき〉…「17:55」まで入れます。最後のEF6には「23:00」と入れます。
最後の23:00を設定しているのは、区切りとして使用しているタスクを見積り時間5分、開始時間23時としているからです。エラーを避けるためです。これらは普段は見えないように文字色を白にしています。
ちなみに、これらの列幅は0.5にすると、私の20インチ画面のでちょうど全てが表示されるいいカンジになります。 
M列の表示形式を時刻に変更
M列のデフォルトでの表示形式がユーザー定義の特殊な形になっていて,そのままではVBAの"myTime"で取得した値と合致しなくなってしまいます。それを避けるためにセルの書式設定で表示形式を時刻の00:00の状態に変えます。
O列を非表示にする
O列は、イジると本体のマクロに影響を与えてしまうようです。よって、ここは一切手を加えません。非表示にしておきます。

発動のためのボタンを設置していますが、その他のマクロの後にくっつけても動作は思いのほか素早いのでイイ感じです。

タグ :TaskChute

同じカテゴリー(PCソフト)の記事画像
xamppでapacheをPCと共に自動起動したいがコントロールパネルv3.2.1ではserviceに表示されないない件
TaskChute 3日目(これまでのまとめ)
やはりavast!を選んだのは間違っていなかった?
ブラウザへのこだわり-その2
同じカテゴリー(PCソフト)の記事
 opera その後 (2014-03-18 23:17)
 xamppでapacheをPCと共に自動起動したいがコントロールパネルv3.2.1ではserviceに表示されないない件 (2014-03-18 11:03)
 さようならOpera 日和るくらいなら有料にして欲しかった (2013-10-22 12:13)
 複数のPDFファイルをボタンひとつで印刷 (2013-02-09 10:40)
 TaskChute 3日目(これまでのまとめ) (2012-05-26 15:54)
 TaskChute 2日目 (2012-05-19 22:38)

このBlogのトップへ
この記事へのコメント
こんにちは。
 わたしの作成した VBA が参照されていたので、こちらにやってきました。文系の方がこれだけエクセルとVBAを使いこなしていらっしゃるのはあまりないと思います。
 わたしの VBA も決して素性の良いものではないと思いますが、たとえ then 句のなかが空欄でもエラーにならないことはこのプログラミング言語の強みであるとも言えます。ぜひとも楽しみながら活用なさってください
Posted by IYN at 2012年06月05日 23:39
管理人です。
ご本人様からありがとうございます。
イヤ、ほんと、参考にさせていただきました。
というか、あのブログがなければ今の使いやすい状態はなかったわけで…
Thenの件は不思議ですね。そういうものなのでしょうか。
がんばります。
Posted by ヨロリン13号ヨロリン13号 at 2012年06月06日 22:55
とてもいいですね
Posted by nakanehideo at 2016年02月28日 19:03
上の画像に書かれている文字を入力して下さい
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。
このページの上へ▲
 
削除
TaskChute 2週間後(ガントチャートの完成)
    コメント(3)