【効率化01】日程表作成業務(社会人向け)
1. 目次
1) 目次(← 現在)
2) 開発背景
3) 失敗事例と成功事例の差分
4) 開発要件
5) 開発ツールの機能
6) 開発ツールの紹介(動画)
7) 開発コード
8) Excelへの開発コード入力方法
9) Excelファイル(開発コード設定済み)
10) 最後に
2. 開発背景
製品開発プロジェクトを納期までに高いレベルで仕上げるために、日程表が必要不可欠であることはご理解頂けると思います。加えて、日程表を適切に維持管理するために、担当者が多く工数を消費している事実も認識されていると思います。具体的には、関係者の検討遅延や開発方針変更に伴う日程表の更新作業、報告会議参加者の職位に合わせた記載粒度の調整作業等です。ここで質問です。あなたのチームでは日程表が形骸化せずに運用されているでしょうか?正直、私の周囲では失敗事例と成功事例があります。そこで今回は、失敗事例と成功事例の差分から得られた学びを活かした効率化ツールの開発を目指します。
3. 失敗事例と成功事例の差分
失敗事例と成功事例の差分を表にまとめました。表1より、見栄えや体裁よりも、メンテナンス性が重要であると言えます。また、チームを管理する立場の人が主体的に日程管理する文化であれば、成功事例となる可能性は高いと言えます。
3. 開発要件
以上より、開発要件は下記の通りです。
1) メンテナンスが容易であること
➡︎ 入力情報は必要最小限
2) チーム全員が日程表をメンテ可能なこと
➡︎ 情報入力はExcel、描画はExcel VBA
4. 開発ツールの機能
4-1. 入力タブ
A) フィルタ機能
表示案件のフィルタリング(例:OPEN案件のみ表示)
B) 入力補助機能
プロジェクト〜担当/備考を入力後、状態〜更新日を自動で入力
4-2. 出力タブ
C) 更新機能
現在状況がOPENの案件のみを日程表に表示
D) 長期/中期/短期カレンダーの切替機能
カレンダーの幅を選択期間に応じて最適化
5. 開発ツールの紹介
6. 開発コード
6-1. シートモジュール(入力タブ)
' ==========================================================
' 【機能】自動入力機能(状況、更新者、更新日)
' 【引数】変更があったセル範囲
' 【戻値】-
' 【備考】-
' 【更新】190831
' ==========================================================
Private Sub Worksheet_Change(ByVal Target As Range)
' 変更箇所と自動入力イベント範囲の比較
'(A:プロジェクト名列、F:担当列、J:備考列)
Set changed_range = Intersect(Target, Range("A:F, J:J"))
If changed_range Is Nothing Then ' 自動入力イベント発生判定
Exit Sub
' プロジェクト名/項目/納期/担当/備考入力の場合
ElseIf changed_range.Column < IN_状況列 Or changed_range.Column > IN_更新日列 And changed_range.Row > 1 Then
Cells(changed_range.Row, IN_状況列).value = "OPEN" ' 状況の自動入力
Cells(changed_range.Row, IN_更新者列).value = Application.UserName ' 更新者の自動入力
Cells(changed_range.Row, IN_更新日列).value = Format(Date, "mm/dd") ' 更新日の自動入力
End If
End Sub
6-2. 標準モジュール
ここから先は
¥ 299
この記事が気に入ったらサポートをしてみませんか?