diff --git a/src/sh/tuk/module/Common_Button.bas b/src/sh/tuk/module/Common_Button.bas index fa078f2..3b5f720 100644 --- a/src/sh/tuk/module/Common_Button.bas +++ b/src/sh/tuk/module/Common_Button.bas @@ -196,7 +196,18 @@ Public Sub Validation_Button() End If Do_Fit_Internal ws + + ' Clear previous error marks before validation + Dim lastRow As Long: lastRow = GetLastDataRowInRange(ws) + Dim sheetConfDict As Object: Set sheetConfDict = GetSheetConfig() + Dim sheetConf As Object: Set sheetConf = sheetConfDict(ws.CodeName) + Dim errCol As Long: errCol = ColNum(CStr(sheetConf("ErrorCol"))) + Dim endCol As Long: endCol = ColNum(CStr(sheetConf("EndCol"))) + ws.Range(ws.Cells(lastRow + 1, errCol), ws.Cells(1048576, errCol)).ClearContents + ws.Range(ws.Cells(lastRow + 1, errCol), ws.Cells(1048576, endCol)).Interior.Color = RGB(255, 255, 255) + Application.EnableEvents = True + Do_Fit_Internal ws Exit Sub ErrorHandler: diff --git a/src/sh/tuk/sheet/C1.cls b/src/sh/tuk/sheet/C1.cls index 8731c73..77729bc 100644 --- a/src/sh/tuk/sheet/C1.cls +++ b/src/sh/tuk/sheet/C1.cls @@ -300,10 +300,10 @@ Public Sub Validate(ws As Worksheet, ByVal rowNum As Long, ByVal lastDataRow As .AddDate "BF" ' Number columns (numeric check only, no digit limit) - .AddNumber "L", 2 + .AddNumber "L", 2, 0 .AddNumber "P", 4, 1 - .AddNumber "Q", 6 - .AddNumber "R", 6 + .AddNumber "Q", 6, 0 + .AddNumber "R", 6, 0 ' G column o3Cache .AddCodeSelect "G", CACHE_O3 diff --git a/src/sh/tuk/sheet/M1.cls b/src/sh/tuk/sheet/M1.cls index 07482a5..3c8b41c 100644 --- a/src/sh/tuk/sheet/M1.cls +++ b/src/sh/tuk/sheet/M1.cls @@ -141,10 +141,10 @@ Public Sub Validate(ws As Worksheet, ByVal rowNum As Long, ByVal lastDataRow As .AddRequired "L" .AddCodeSelect "K", "renrakuList" .AddCodeSelect "L", "tokubetuList" - .AddNumber "H", 6, 1 - .AddNumber "I", 5 - .AddNumber "J", 6 - .AddNumber "N" + .AddNumber "H", 6, 1 + .AddNumber "I", 5, 0 + .AddNumber "J", 6, 0 + .AddNumber "N", 7, 0 End With diff --git a/src/sh/tuk/sheet/M2.cls b/src/sh/tuk/sheet/M2.cls index 89035a2..438bbc6 100644 --- a/src/sh/tuk/sheet/M2.cls +++ b/src/sh/tuk/sheet/M2.cls @@ -118,9 +118,9 @@ Public Sub Validate(ws As Worksheet, ByVal rowNum As Long, ByVal lastDataRow As .AddRequired "K" .AddRequired "L" .AddRequired "M" - .AddNumber "L" - .AddNumber "M" - .AddNumber "N" + .AddNumber "L", 10, 3 + .AddNumber "M", 7, 0 + .AddNumber "N", 3, 0 .AddNumber "O" .AddNumber "P" .AddNumber "Q" diff --git a/src/sh/tuk/validation/ValidationRule.cls b/src/sh/tuk/validation/ValidationRule.cls index e1cbb8f..7cfd465 100644 --- a/src/sh/tuk/validation/ValidationRule.cls +++ b/src/sh/tuk/validation/ValidationRule.cls @@ -71,6 +71,8 @@ Public Function ValidateRow(ws As Worksheet, rowNum As Long, Optional lastDataRo If Left(intPart, 1) = "-" Then intPart = Mid(intPart, 2) If Len(intPart) = 0 Then result.SetFail ERR_NUMDIGITS, ColIndex, rowNum, "Number(" & NumberDigits & ", " & NumberDec & ")" + ElseIf NumberDec = 0 And dotPos > 0 Then + result.SetFail ERR_NUMDIGITS, ColIndex, rowNum, "Number(" & NumberDigits & ", " & NumberDec & ")" ElseIf Len(intPart) > NumberDigits - NumberDec Then result.SetFail ERR_NUMDIGITS, ColIndex, rowNum, "Number(" & NumberDigits & ", " & NumberDec & ")" ElseIf NumberDec > 0 And Len(decPart) > NumberDec Then diff --git a/通勤手当テンプレート20260528.xlsm b/通勤手当テンプレート20260528.xlsm index 9b6e2b4..6ee3fcd 100644 Binary files a/通勤手当テンプレート20260528.xlsm and b/通勤手当テンプレート20260528.xlsm differ