VBAで勤怠情報のデータからエラーを検出してT列に表示する仕組みを作成するには、次の内容が必要です。
必要なもの
1. 「data」シート - 勤怠システムから毎月出力されるデータが格納されるシート。毎月新しいデータが上書きされる想定。
2. 「エラー一覧」シート - エラー条件とエラー内容が記載されたシート。
B列 - エラー内容の一覧(12種類)。
C列 - エラーの条件を定義。条件はVBAで判別できるような数式や関数形式で入力する。
3. エラーチェック関数 - 各エラー条件に応じた検出ロジックをVBAで記述する。
作成方法
以下にVBAコードの流れと手順を示します。
1. 初期設定
「VBA開発」タブで「Visual Basic」エディタを開き、標準モジュールを挿入します。
エラー検出マクロを作成します。
2. VBAコードの記述
Sub エラー検出()
Dim wsData As Worksheet, wsErrorList As Worksheet
Dim lastRow As Long, i As Long, j As Long
Dim errorDescription As String
Dim errorCondition As String
' シートの参照設定
Set wsData = ThisWorkbook.Sheets("data")
Set wsErrorList = ThisWorkbook.Sheets("エラー一覧")
' 最終行を取得
lastRow = wsData.Cells(wsData.Rows.Count, "A").End(xlUp).Row
' T列をクリア
wsData.Range("T2:T" & lastRow).ClearContents
' エラー一覧をループしてデータをチェック
For i = 2 To lastRow
Dim errorMessages As String
errorMessages = ""
' エラー一覧の行をループして各エラーをチェック
For j = 2 To wsErrorList.Cells(wsErrorList.Rows.Count, "B").End(xlUp).Row
errorDescription = wsErrorList.Cells(j, "B").Value
errorCondition = wsErrorList.Cells(j, "C").Value
' 条件に基づきエラー判定
If Evaluate(Replace(errorCondition, "セル", wsData.Cells(i, "A").Address)) Then
If errorMessages <> "" Then errorMessages = errorMessages & "、"
errorMessages = errorMessages & errorDescription
End If
Next j
' T列にエラー内容を表示
If errorMessages <> "" Then
wsData.Cells(i, "T").Value = errorMessages
End If
Next i
MsgBox "エラーチェックが完了しました。"
End Sub
ここから先は
¥ 1,000
Amazonギフトカード5,000円分が当たる
この記事が気に入ったらチップで応援してみませんか?