Excel VBAを利用して「年次休暇・有給取得状況報告書」を自動生成する方法を解説します。ExcelのVBA機能を活用することで、手動での作業時間を大幅に短縮することができます。この記事では、基本的なコードから、さまざまな応用例までを取り上げます。
目次
基本的なコードの概要
年次休暇・有給取得状況報告書を作成するための基本的なVBAコードを示します。
Sub 有給取得状況報告書作成()
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("報告書")
' タイトルの挿入
ws.Cells(1, 1).Value = "年次休暇・有給取得状況報告書"
' ヘッダーの挿入
ws.Cells(3, 1).Value = "氏名"
ws.Cells(3, 2).Value = "取得日"
ws.Cells(3, 3).Value = "取得日数"
' 以下、データの挿入と書式設定のコード
End Sub
このコードは、”報告書”という名前のワークシートに報告書のタイトルとヘッダーを挿入する基本的な処理を示しています。
コードの詳細解説
1. `Dim ws As Worksheet`: Worksheetオブジェクトとしてwsを定義します。
2. `Set ws = ThisWorkbook.Worksheets(“報告書”)`: “報告書”というワークシートをwsにセットします。
3. `ws.Cells(1, 1).Value = “年次休暇・有給取得状況報告書”`: タイトルを挿入します。
4. ヘッダー部分も同様の方法で挿入します。
応用例
1. データの自動入力
有給休暇の取得状況を自動で入力するコードを示します。
Sub データ自動入力()
Dim ws As Worksheet
Dim LastRow As Long
Set ws = ThisWorkbook.Worksheets("報告書")
' 最後の行を取得
LastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
' データの自動入力
ws.Cells(LastRow + 1, 1).Value = "田中太郎"
ws.Cells(LastRow + 1, 2).Value = Date
ws.Cells(LastRow + 1, 3).Value = 1
End Sub
2. データの集計
有給休暇の取得日数を集計するコードを示します。
Sub 有給取得日数集計()
Dim ws As Worksheet
Dim LastRow As Long
Dim TotalDays As Double
Set ws = ThisWorkbook.Worksheets("報告書")
LastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
' 日数の集計
TotalDays = Application.WorksheetFunction.Sum(ws.Range("C4:C" & LastRow))
ws.Cells(LastRow + 2, 2).Value = "合計取得日数"
ws.Cells(LastRow + 2, 3).Value = TotalDays
End Sub
3. レポートの書式設定
報告書の見た目を整えるコードを示します。
Sub 書式設定()
Dim ws As Worksheet
Dim LastRow As Long
Set ws = ThisWorkbook.Worksheets("報告書")
LastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
' タイトルの書式設定
With ws.Cells(1, 1).Font
.Size = 16
.Bold = True
End With
' ヘッダーの書式設定
With ws.Range("A3:C3").Font
.Bold = True
End With
' 罫線の追加
ws.Range("A3:C" & LastRow).Borders.LineStyle = xlContinuous
End Sub
まとめ
Excel VBAを使うことで「年次休暇・有給取得状況報告書」の作成が効率的に行えることを示しました。基本のコードから、データの入力、集計、書式設定といった応用例まで、Excel VBAの可能性を最大限に活用しましょう。
コメント