Excel VBAを活用した年次業績評価報告書の自動生成方法

この記事では、Excel VBAを使用して「年次業績評価報告書」の生成について詳しく解説します。具体的なコードとその詳細な解説、さらに応用例を3つ含めてご紹介します。VBAを活用することで、手動での作業を自動化し、効率的に業務を進めることが可能となります。

目次

Excel VBAの基本

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

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

基本コード

年次業績評価報告書を生成する基本的なVBAコードを以下に示します。


Sub GeneratePerformanceReport()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Report")
    
    ws.Range("A1").Value = "年次業績評価報告書"
    ws.Range("A3").Value = "氏名"
    ws.Range("B3").Value = "評価"
    ws.Range("A4").Value = "田中太郎"
    ws.Range("B4").Value = "A"
End Sub

コードの詳細解説

上記のコードは、Excelのワークシートに「年次業績評価報告書」のテンプレートを生成するものです。

– `Dim ws As Worksheet`: ワークシートを操作するための変数wsを宣言します。
– `Set ws = ThisWorkbook.Sheets(“Report”)`: ワークブック内の”Report”という名前のシートをwsに設定します。
– `ws.Range(“A1”).Value`: A1セルに”年次業績評価報告書”というテキストを入力します。
– `ws.Range(“A3”).Value` ~ `ws.Range(“B4”).Value`: A3セルからB4セルに必要な情報を入力します。

応用例1:評価データを外部ファイルから読み込む


Sub ImportDataFromExternalFile()
    Dim wb As Workbook
    Dim wsReport As Worksheet, wsData As Worksheet
    
    Set wsReport = ThisWorkbook.Sheets("Report")
    Set wb = Workbooks.Open("C:\path\to\external\data.xlsx")
    Set wsData = wb.Sheets(1)
    
    wsData.Range("A1:B10").Copy wsReport.Range("A4")
    wb.Close
End Sub

解説

上記のコードでは、外部のExcelファイルから評価データを読み込み、報告書のテンプレートにデータをコピーします。

応用例2:条件付き書式を適用する


Sub ApplyConditionalFormatting()
    Dim ws As Worksheet
    Dim rng As Range
    
    Set ws = ThisWorkbook.Sheets("Report")
    Set rng = ws.Range("B4:B104")
    
    With rng.FormatConditions.Add(Type:=xlCellValue, Operator:=xlEqual, Formula1:="=""A""")
        .Font.Color = RGB(0, 176, 80)
        .Font.Bold = True
    End With
End Sub

解説

Aランクの評価を受けた人の名前を緑色にする条件付き書式を適用します。

応用例3:グラフを自動生成する


Sub GenerateGraph()
    Dim ws As Worksheet
    Dim chrt As ChartObject
    
    Set ws = ThisWorkbook.Sheets("Report")
    Set chrt = ws.ChartObjects.Add(Left:=100, Width:=375, Top:=75, Height:=225)
    
    With chrt.Chart
        .SetSourceData Source:=ws.Range("A3:B10")
        .ChartType = xlColumnClustered
        .HasTitle = True
        .ChartTitle.Text = "年次業績評価"
    End With
End Sub

解説

年次業績評価のデータを基に、評価の分布を示す棒グラフを自動で生成します。

まとめ

Excel VBAを利用して、年次業績評価報告書を効率的に生成することができます。基本のコードからさまざまな応用例まで、業務の効率化に役立ててください。

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

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

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

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

コメント

コメントする

目次