20260515指摘対応5
This commit is contained in:
@@ -20,6 +20,7 @@ Private Sub Worksheet_Change(ByVal Target As Range)
|
||||
Call ClearDataRow(Me, START_COL + 1, END_COL, cell.Row, ERROR_COL)
|
||||
Else
|
||||
Call BuildTokubetuDropdown(Me, "L", cell.Row)
|
||||
Call BuildRenrakuDropdown(Me, "K", cell.Row)
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
@@ -126,14 +127,6 @@ Private Sub Validate(ws As Worksheet, ByVal rowNum As Long, ByVal lastDataRow As
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
' Check if M2 uses this M1 kukan code
|
||||
Dim m2Cache As Object: Set m2Cache = GetCache("M2")
|
||||
If Not m2Cache.Exists(cValue) Then
|
||||
ws.Cells(rowNum, errorCol).Value = GetErrorMsg("W001", cValue)
|
||||
ws.Range("C" & rowNum).Interior.Color = RGB(255, 128, 0)
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
' Validation passed - clear error
|
||||
ws.Cells(rowNum, errorCol).ClearContents
|
||||
End Sub
|
||||
@@ -157,4 +150,59 @@ Private Sub Refresh(ws As Worksheet, ByVal startRow As Long, ByVal lastDataRow A
|
||||
|
||||
Finally:
|
||||
Application.EnableEvents = True
|
||||
End Sub
|
||||
|
||||
Private Sub ValidateWarn(ws As Worksheet, ByVal lastDataRow As Long)
|
||||
On Error GoTo ErrorHandler
|
||||
Dim exitMsg As String
|
||||
|
||||
' Get M2 sheet kukan code list directly
|
||||
Dim sheetConfDict As Object: Set sheetConfDict = GetSheetConfig()
|
||||
Dim m2SheetConf As Object: Set m2SheetConf = sheetConfDict("M2")
|
||||
Dim m2StartRow As Long: m2StartRow = m2SheetConf("StartRow")
|
||||
Dim wsM2 As Worksheet: Set wsM2 = ThisWorkbook.Worksheets("M2")
|
||||
Dim lastRowM2 As Long: lastRowM2 = GetLastDataRowInRange(wsM2)
|
||||
If lastRowM2 < m2StartRow Then
|
||||
exitMsg = "M2 sheet has no data"
|
||||
GoTo ErrorHandler
|
||||
End If
|
||||
|
||||
' Build kukan code list from M2 sheet
|
||||
Dim kukanList As Object: Set kukanList = CreateObject("Scripting.Dictionary")
|
||||
Dim r As Long
|
||||
For r = m2StartRow To lastRowM2
|
||||
Dim kukanCode As String: kukanCode = Trim(wsM2.Cells(r, 3).Value)
|
||||
If kukanCode <> "" And Not kukanList.Exists(kukanCode) Then
|
||||
kukanList.Add kukanCode, True
|
||||
End If
|
||||
Next r
|
||||
|
||||
|
||||
Dim sheetConf As Object: Set sheetConf = sheetConfDict("M1")
|
||||
Dim startRow As Long: startRow = sheetConf("StartRow")
|
||||
Dim errorCol As String: errorCol = sheetConf("ErrorCol")
|
||||
' Check all rows in M1 sheet
|
||||
If lastDataRow < startRow Then
|
||||
exitMsg = "M1 sheet has no data"
|
||||
GoTo ErrorHandler
|
||||
End If
|
||||
|
||||
Dim rowNum As Long
|
||||
For rowNum = startRow To lastDataRow
|
||||
Dim cValue As String: cValue = Trim(ws.Range("C" & rowNum).Value)
|
||||
If Not kukanList.Exists(cValue) Then
|
||||
ws.Cells(rowNum, errorCol).Value = GetErrorMsg("W001", cValue)
|
||||
ws.Range("C" & rowNum).Interior.Color = RGB(255, 128, 0)
|
||||
End If
|
||||
NextRow:
|
||||
Next rowNum
|
||||
|
||||
Exit Sub
|
||||
|
||||
ErrorHandler:
|
||||
If exitMsg <> "" Then
|
||||
MsgBox "ValidateWarn: " & exitMsg, vbExclamation
|
||||
Else
|
||||
MsgBox "ValidateWarn: " & Err.Description, vbExclamation
|
||||
End If
|
||||
End Sub
|
||||
Reference in New Issue
Block a user