Excel VBAを使って「社員の月次業績評価一覧表」を自動生成する方法

この記事では、Excel VBAを利用して「社員の月次業績評価一覧表」の自動生成方法について詳しく解説します。初心者でも理解しやすいように具体的なコード例とその解説、応用例を含めています。

目次

Excel VBAの基本

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

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

基本のコード

VBAを利用することで、Excelのデータから業績評価一覧表を自動生成することができます。以下は、その基本的なコードです。


Sub 月次業績評価一覧表生成()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("評価一覧")

    ws.Cells.Clear ' 既存のデータをクリア

    ' タイトルの設定
    ws.Cells(1, 1).Value = "社員名"
    ws.Cells(1, 2).Value = "業績評価"

    ' データの入力
    ws.Cells(2, 1).Value = "山田太郎"
    ws.Cells(2, 2).Value = "A"
    ws.Cells(3, 1).Value = "佐藤花子"
    ws.Cells(3, 2).Value = "B"

    ' 以下、必要な数だけデータを追加
End Sub

コードの詳細解説

このコードは、新たな月次業績評価一覧表を生成するものです。まず、評価一覧のシートを指定して、そのシートの内容をクリアしてから、新たなデータを入力しています。

応用例

1. 評価データの自動入力

評価データを配列や外部ファイルから自動で取得し、入力する方法です。


Sub 評価データの自動入力()
    Dim ws As Worksheet
    Dim EvalData As Variant
    Dim i As Integer

    EvalData = Array(Array("山田太郎", "A"), Array("佐藤花子", "B")) ' 例としての評価データ
    Set ws = ThisWorkbook.Sheets("評価一覧")

    For i = LBound(EvalData) To UBound(EvalData)
        ws.Cells(i + 2, 1).Value = EvalData(i)(0)
        ws.Cells(i + 2, 2).Value = EvalData(i)(1)
    Next i
End Sub

2. 評価結果に応じたセルの色分け

評価結果に応じて、セルの背景色を変更する方法です。


Sub 色分け()
    Dim ws As Worksheet
    Dim LastRow As Long, i As Long

    Set ws = ThisWorkbook.Sheets("評価一覧")
    LastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row

    For i = 2 To LastRow
        Select Case ws.Cells(i, 2).Value
            Case "A"
                ws.Cells(i, 2).Interior.Color = RGB(0, 255, 0) ' 緑色
            Case "B"
                ws.Cells(i, 2).Interior.Color = RGB(255, 255, 0) ' 黄色
            Case Else
                ws.Cells(i, 2).Interior.Color = RGB(255, 0, 0) ' 赤色
        End Select
    Next i
End Sub

3. チャートの自動作成

評価結果をもとに、評価の分布を示す円グラフを自動生成する方法です。


Sub チャート生成()
    Dim ws As Worksheet
    Dim ChartRange As Range
    Dim objChart As ChartObject

    Set ws = ThisWorkbook.Sheets("評価一覧")
    Set ChartRange = ws.Range("A1:B4") ' 適切な範囲を指定
    Set objChart = ws.ChartObjects.Add(Left:=100, Width:=375, Top:=75, Height:=225)

    objChart.Chart.SetSourceData Source:=ChartRange
    objChart.Chart.ChartType = xlPie
    objChart.Chart.HasTitle = True
    objChart.Chart.ChartTitle.Text = "業績評価分布"
End Sub

まとめ

Excel VBAを利用すれば、繁雑な業務も自動化して楽に行うことができます。「社員の月次業績評価一覧表」の自動生成はその一例に過ぎません。VBAの知識を深めることで、更に高度な自動化も可能になります。今回学んだ内容をベースに、自身の業務を効率化してみてください。

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

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

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

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

コメント

コメントする

目次