給与明細の作成や配布は、人事業務の重要な一環ですが、手作業で行うと多くの時間と手間がかかることは事実です。
ここで、Excel VBAマクロの力を借りて、給与通知を簡単にPDFに変換する方法をご紹介します。特に、MacとWindowsそれぞれの環境に合わせて詳しく解説しているので、初心者の方でも安心してお試しいただけます。
【なぜExcel VBAマクロを使うのか?】
給与通知をPDFに変換する作業は、手作業で毎回行うと手間がかかります。また、ミスが起こる可能性もあり、正確性を保つためには細心の注意が必要です。
ここでExcel VBAマクロが大いに役立ちます。一度設定すれば、給与明細の情報を自動的に取り込み、PDFファイルに変換してくれるため、手作業の手間やミスを大幅に軽減できるのです。
【手間を省くExcel VBAマクロの使い方】
給与通知をPDFに変換する手順は、MacとWindowsそれぞれの環境に合わせて以下のように行います。
Mac版の手順:
- Excelファイルを開きます。
- 上部メニューから「ツール」→「マクロ」→「Visual Basicエディタ」を選択してエディタを開きます。
- エディタ内で新しいモジュールを作成し、用意されたVBAマクロコードをコピーします。
- コード内に、Mac向けのPDF出力に関するコードを追記します。
- エディタ上部の再生ボタンをクリックするか、コードにカーソルを合わせてF5キーを押すと、マクロが実行されます。
Sub pdf_output()
'変数宣言
Dim target_Sheet As Worksheet
Dim format_Sheet As Worksheet
Dim lastLine As Long
Dim targetLine As Long
Dim outputPath As String
'処理実行用変数設定
Set target_Sheet = ThisWorkbook.Sheets("給与")
Set format_Sheet = ThisWorkbook.Sheets("フォーマット")
lastLine = target_Sheet.Cells(target_Sheet.Rows.Count, "A").End(xlUp).Row '給与シートの最終行を取得
targetLine = 2 'カウント用初期値設定
'出力先情報変数設定
outputPath = ThisWorkbook.Path & "/出力先/"
'最終行までの各行の情報を処理
Do While targetLine <= lastLine
'取込対象シートの情報をフォーマットに適用
format_Sheet.Range("B4").Value = target_Sheet.Range("B" & targetLine).Value '対象者名
format_Sheet.Range("P21").Value = target_Sheet.Range("C" & targetLine).Value '等級
format_Sheet.Range("P23").Value = target_Sheet.Range("D" & targetLine).Value '基本給
format_Sheet.Range("P25").Value = target_Sheet.Range("E" & targetLine).Value 'みなし時間外手当
format_Sheet.Range("P27").Value = target_Sheet.Range("F" & targetLine).Value '月額合計
'行毎のPDFファイルを対象フォルダに出力
format_Sheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:=outputPath & target_Sheet.Range("A" & targetLine).Value & ".pdf"
'対象行を1行進める
targetLine = targetLine + 1
Loop
'フォーマットシート初期化
format_Sheet.Range("B4").Value = "対象者名"
format_Sheet.Range("P21").Value = "XX"
format_Sheet.Range("P23").Value = "XX"
format_Sheet.Range("P25").Value = "XX"
format_Sheet.Range("P27").Value = "XX"
End Sub
Windows版の手順:
- Excelファイルを開きます。
- 上部メニューから「開発」→「Visual Basic」を選択してエディタを開きます。
- エディタ内で新しいモジュールを作成し、用意されたVBAマクロコードをコピーします。
- コード内に、Windows向けのPDF出力に関するコードを追記します。
- モジュール内のコードにカーソルを合わせてF5キーを押すと、マクロが実行されます。
Sub pdf_output()
'変数宣言
Dim target_Sheet As Worksheet
Dim format_Sheet As Worksheet
Dim lastLine As Long
Dim targetLine As Long
Dim outputPath As String
'処理実行用変数設定
Set target_Sheet = Worksheets("給与")
Set format_Sheet = Worksheets("フォーマット")
lastLine = Worksheets("給与").Cells(Rows.Count, "A").End(xlUp).Row '給与シートの最終行を取得
targetLine = 2 'カウント用初期値設定
'出力先情報変数設定
outputPath = ThisWorkbook.Path & "\出力先\"
'最終行までの各行の情報を処理
Do While targetLine <= lastLine
'取込対象シートの情報をフォーマットに適用
format_Sheet.Range("B4").Value = target_Sheet.Range("B" & targetLine).Value '対象者名
format_Sheet.Range("P21").Value = target_Sheet.Range("C" & targetLine).Value '等級
format_Sheet.Range("P23").Value = target_Sheet.Range("D" & targetLine).Value '基本給
format_Sheet.Range("P25").Value = target_Sheet.Range("E" & targetLine).Value 'みなし時間外手当
format_Sheet.Range("P27").Value = target_Sheet.Range("F" & targetLine).Value '月額合計
'行毎のPDFファイルを対象フォルダに出力
format_Sheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=outputPath & target_Sheet.Range("A" & targetLine).Value
'対象行を1行進める
targetLine = targetLine + 1
Loop
'フォーマットシート初期化
format_Sheet.Range("B4").Value = "対象者名"
format_Sheet.Range("P21").Value = "XX"
format_Sheet.Range("P23").Value = "XX"
format_Sheet.Range("P25").Value = "XX"
format_Sheet.Range("P27").Value = "XX"
End Sub
【効率的な人事業務の実現】
このExcel VBAマクロを活用することで、給与明細のPDF変換作業が驚くほど簡単になります。
手作業では煩雑だった作業が、わずかなステップで自動化されるため、正確性と効率性を高めることができます。一括PDF出力も可能なので、多くの給与通知を効率的に配布できるでしょう。
【まとめ】
Excel VBAマクロを活用して、給与通知をPDFに変換する方法をMacとWindowsそれぞれの環境でご紹介しました。
手順を追うだけで簡単に給与通知をPDFに変換できるので、人事業務の効率化に一役買うこと間違いありません。
手間を省きながら正確な給与通知を提供し、従業員との信頼を築く一助となるでしょう。