CSVデータをExcelに自動転記する方法|マクロと関数で効率化する勤怠管理術

Excel

勤怠管理などでCSVデータをExcelに手作業で転記している場合、時間と手間がかかってしまいます。この記事では、CSVファイルの内容をExcelに自動転記する方法を、関数とマクロ(VBA)の両方のアプローチで解説します。業務効率化を目指す方に最適な内容です。

CSVデータの構造を理解する

まずは、CSVファイルの構造を確認しましょう。CSV(Comma Separated Values)は、カンマで区切られたデータ形式で、例えば以下のような形です。

従業員名,出勤時間,退勤時間
田中太郎,09:00,18:00
佐藤花子,08:30,17:30

このようなデータをExcelの実績表に転記する場合、構造が一致していることが重要です。列名や順番が異なる場合は、Excel上で列を並び替えるか、マクロで調整します。

関数を使ってCSVからデータを読み込む方法

関数を使う場合は、Excelの「Power Query」機能が便利です。以下の手順でCSVデータを簡単に取り込むことができます。

  • 「データ」タブをクリックし、「データの取得」→「テキスト/CSVから」を選択。
  • CSVファイルを指定すると、プレビューが表示されます。
  • 「読み込み」または「変換して読み込み」をクリックすると、Excelにデータが展開されます。

Power Queryを使うメリットは、次回以降同じCSVファイルを更新するだけで、自動的に最新データが反映される点です。

VBAマクロで自動転記する方法

関数では限界がある場合、VBA(マクロ)を使うことで完全自動化が可能です。以下のコードを使用すれば、CSVから指定シートに自動でデータを転記できます。

Sub ImportCSV()
Dim ws As Worksheet
Dim FilePath As String
FilePath = Application.GetOpenFilename("CSVファイル (*.csv),*.csv")
If FilePath = "False" Then Exit Sub
Set ws = ThisWorkbook.Sheets("実績表")
ws.Cells.ClearContents
With ws.QueryTables.Add(Connection:="TEXT;" & FilePath, Destination:=ws.Range("A1"))
.TextFileCommaDelimiter = True
.TextFileColumnDataTypes = Array(1, 1, 1)
.Refresh BackgroundQuery:=False
End With
End Sub

このマクロは、CSVファイルを選択して「実績表」シートに内容を自動貼り付けします。ファイルを開くたびに手作業でコピペする必要がなくなるため、大幅な時間短縮が期待できます。

従業員ごとにデータを分けたい場合

従業員ごとにシートを分けて管理したい場合は、VBAで条件分岐を加えることも可能です。以下のようにして、従業員名を基準にデータを自動で仕分けできます。

Sub SplitByEmployee()
Dim ws As Worksheet, empWs 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
empName = ws.Cells(i, 1).Value
On Error Resume Next
Set empWs = ThisWorkbook.Sheets(empName)
If empWs Is Nothing Then
Set empWs = ThisWorkbook.Sheets.Add
empWs.Name = empName
End If
ws.Rows(i).Copy empWs.Cells(empWs.Cells(empWs.Rows.Count, 1).End(xlUp).Row + 1, 1)
Set empWs = Nothing
Next i
End Sub

このコードを使えば、CSVを取り込んだ後、従業員ごとに自動でシートを作成して整理することができます。

効率化のコツと注意点

CSVからExcelへの転記を自動化する際には、以下のポイントに注意しましょう。

  • CSVのフォーマット(列の順番、ヘッダーの有無)を統一しておく。
  • ファイルの文字コードがUTF-8やShift-JISなど適切な形式か確認する。
  • マクロを実行する前に、作業用のバックアップを必ず取る。

これらを守ることで、データ破損や誤上書きを防ぐことができます。

まとめ

CSVデータのExcel転記は、Power Queryを使えば手軽に、VBAマクロを使えば完全自動化が可能です。勤怠データなど定期的に処理するファイルは、一度仕組みを整えることで毎月の作業を大幅に効率化できます。手作業でのコピペを卒業し、自動化で正確かつスピーディーな管理を実現しましょう。

コメント

タイトルとURLをコピーしました