Excel VBAでチーム別のタスク完了率レポートを自動生成する方法

Excelは業務で頻繁に使用されるツールの一つであり、VBAを使用してExcelの機能を自動化することで、業務効率を大幅に向上させることが可能です。この記事では、Excel VBAを使ってチーム別のタスク完了率レポートを自動生成する方法について詳しく説明します。

目次

Excel VBAの基本

Excel VBA(Visual Basic for Applications)は、Microsoft Excelに組み込まれたプログラミング言語です。これを用いると、単純作業の自動化だけでなく、高度なデータ分析やレポート作成も可能になります。

そもそも、どこにVBAコードを書いて、どう実行すれば良いのか分からない場合は、以下の記事をご参照ください。

基本的な考え方

チーム別のタスク完了率をレポートとして生成するには、以下のステップを踏む必要があります。
1. Excelシートから各チームのタスクデータを取得する。
2. タスク完了率を計算する。
3. タスク完了率をレポート形式で出力する。

基本コード

以下は、チーム別のタスク完了率をレポートとして出力する基本的なVBAコードです。


Sub GenerateReport()
    Dim LastRow As Long
    Dim i As Long
    Dim CompletedTasks As Long
    Dim TotalTasks As Long
    Dim CompletionRate As Double

    '最後の行を取得
    LastRow = ThisWorkbook.Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row

    'タスクの総数と完了したタスクの数を計算
    For i = 2 To LastRow '1行目はヘッダなので2行目から
        TotalTasks = TotalTasks + 1
        If ThisWorkbook.Sheets("Sheet1").Cells(i, 3).Value = "完了" Then
            CompletedTasks = CompletedTasks + 1
        End If
    Next i

    '完了率を計算
    CompletionRate = CompletedTasks / TotalTasks

    'レポートを出力
    ThisWorkbook.Sheets("Sheet2").Cells(1, 1).Value = "タスク完了率"
    ThisWorkbook.Sheets("Sheet2").Cells(1, 2).Value = CompletionRate
End Sub

基本コードの解説

上記のコードでは、Sheet1に記載されているタスクのデータを元に、タスクの完了率をSheet2にレポートとして出力しています。具体的には、Sheet1の3列目に「完了」という文字が入っている場合、それを完了したタスクとしてカウントしています。

応用例

応用例1: チーム別の完了率を出力

各チームごとにタスクの完了率を計算して、それを別のシートに出力する方法を解説します。


Sub GenerateTeamReport()
    '...
    '(基本コードと同様の変数宣言部分は省略)
    Dim Team As String
    Dim TeamRow As Long
    For i = 2 To LastRow
        Team = ThisWorkbook.Sheets("Sheet1").Cells(i, 2).Value
        If Team <> "" Then
            If ThisWorkbook.Sheets("Sheet2").Cells(TeamRow, 1).Value <> Team Then
                TeamRow = TeamRow + 1
                ThisWorkbook.Sheets("Sheet2").Cells(TeamRow, 1).Value = Team
            End If
            '...
            '(各チームごとの完了率の計算処理)
        End If
    Next i
End Sub

応用例2: 完了率のグラフを自動生成

Excelのグラフ機能を利用して、完了率をグラフとして表示する方法を解説します。

応用例3: 期限切れのタスクをハイライト表示

期限を過ぎても未完了のタスクを自動で赤色にする方法を解説します。

まとめ

Excel VBAを活用することで、複雑なタスクのレポートも簡単に自動生成することが可能です。今回の例を元に、業務の効率化を図ってみてはいかがでしょうか。

VBAも良いけどパワークエリも良い

VBAの解説をしてきましたが、VBAは正直煩雑でメンテナンス性が悪いです。最近はモダンExcelと呼ばれるパワークエリやパワーピボットへのシフトが進んできています。本サイトでもパワークエリの特集をしており、サンプルデータを含む全11回の学習コンテンツでパワークエリを習得することができます。

クリックするとパワークエリの全11講座が表示されます。

パワーピボットの記事はありません。興味がある場合は、書籍で学んでみてください

コメント

コメントする

目次