我有一个包含多个Y / N复选框的文档。文档的某些区域,当选中Y时,我希望复选框字体更改颜色和粗体。我想要在检查N时发生这种情况。
我遇到的问题是
这是我的代码:
Public Sub UpdateForm()
On Error GoTo ERRUpdateForm
Dim FF As Long
Dim BM As Long
Dim strFF As String
Dim BolCheck As Boolean
Dim ctl As FormField
MsgBox "UpdateForm"
ActiveDocument.Unprotect "password"
For FF = 1 To ActiveDocument.FormFields.Count
strFF = ActiveDocument.FormFields(FF).Name
BolCheck = ActiveDocument.FormFields(FF).CheckBox.Value
Select Case strFF
'Page 2
Case "Check01Y"
If BolCheck Then
ActiveDocument.Bookmarks("Check01Txt").Range.Font.Color = RGB(102, 153, 0)
Else
ActiveDocument.Bookmarks("Check01Txt").Range.Font.Color = RGB(0, 0, 0)
End If
Case "Check02Y"
If BolCheck Then
ActiveDocument.Bookmarks("Check02Txt").Range.Font.Color = RGB(102, 153, 0)
Else
ActiveDocument.Bookmarks("Check02Txt").Range.Font.Color = RGB(0, 0, 0)
End If
Case "Check03Y"
If BolCheck Then
ActiveDocument.Bookmarks("Check03Txt").Range.Font.Color = RGB(102, 153, 0)
Else
ActiveDocument.Bookmarks("Check03Txt").Range.Font.Color = RGB(0, 0, 0)
End If
Case "Check04Y"
If BolCheck Then
ActiveDocument.Bookmarks("Check04Txt").Range.Font.Color = RGB(102, 153, 0)
Else
ActiveDocument.Bookmarks("Check04Txt").Range.Font.Color = RGB(0, 0, 0)
End If
'Rest of document
Case "Check05N"
If BolCheck Then
ActiveDocument.Bookmarks("Check05NTxt").Range.Font.Color = RGB(255, 0, 0)
Else
ActiveDocument.Bookmarks("Check05NTxt").Range.Font.Color = RGB(0, 0, 0)
End If
Case "Check06N"
If BolCheck Then
ActiveDocument.Bookmarks("Check06NTxt").Range.Font.Color = RGB(255, 0, 0)
Else
ActiveDocument.Bookmarks("Check06NTxt").Range.Font.Color = RGB(0, 0, 0)
End If
Case "Check07N"
If BolCheck Then
ActiveDocument.Bookmarks("Check07NTxt").Range.Font.Color = RGB(255, 0, 0)
Else
ActiveDocument.Bookmarks("Check07NTxt").Range.Font.Color = RGB(0, 0, 0)
End If
Case "Check08N"
If BolCheck Then
ActiveDocument.Bookmarks("Check08NTxt").Range.Font.Color = RGB(255, 0, 0)
Else
ActiveDocument.Bookmarks("Check08NTxt").Range.Font.Color = RGB(0, 0, 0)
End If
Case "Check09N"
If BolCheck Then
ActiveDocument.Bookmarks("Check09NTxt").Range.Font.Color = RGB(255, 0, 0)
Else
ActiveDocument.Bookmarks("Check09NTxt").Range.Font.Color = RGB(0, 0, 0)
End If
Case "Check10N"
If BolCheck Then
ActiveDocument.Bookmarks("Check10NTxt").Range.Font.Color = RGB(255, 0, 0)
Else
ActiveDocument.Bookmarks("Check10NTxt").Range.Font.Color = RGB(0, 0, 0)
End If
Case "Check11N"
If BolCheck Then
ActiveDocument.Bookmarks("Check11NTxt").Range.Font.Color = RGB(255, 0, 0)
Else
ActiveDocument.Bookmarks("Check11NTxt").Range.Font.Color = RGB(0, 0, 0)
End If
Case "Check12N"
If BolCheck Then
ActiveDocument.Bookmarks("Check12NTxt").Range.Font.Color = RGB(255, 0, 0)
Else
ActiveDocument.Bookmarks("Check12NTxt").Range.Font.Color = RGB(0, 0, 0)
End If
Case "Check13N"
If BolCheck Then
ActiveDocument.Bookmarks("Check13NTxt").Range.Font.Color = RGB(255, 0, 0)
Else
ActiveDocument.Bookmarks("Check13NTxt").Range.Font.Color = RGB(0, 0, 0)
End If
Case "Check14N"
If BolCheck Then
ActiveDocument.Bookmarks("Check14NTxt").Range.Font.Color = RGB(255, 0, 0)
Else
ActiveDocument.Bookmarks("Check14NTxt").Range.Font.Color = RGB(0, 0, 0)
End If
Case "Check15N"
If BolCheck Then
ActiveDocument.Bookmarks("Check15NTxt").Range.Font.Color = RGB(255, 0, 0)
Else
ActiveDocument.Bookmarks("Check15NTxt").Range.Font.Color = RGB(0, 0, 0)
End If
Case "Check16N"
If BolCheck Then
ActiveDocument.Bookmarks("Check16NTxt").Range.Font.Color = RGB(255, 0, 0)
Else
ActiveDocument.Bookmarks("Check16NTxt").Range.Font.Color = RGB(0, 0, 0)
End If
Case "Check17N"
If BolCheck Then
ActiveDocument.Bookmarks("Check17NTxt").Range.Font.Color = RGB(255, 0, 0)
Else
ActiveDocument.Bookmarks("Check17NTxt").Range.Font.Color = RGB(0, 0, 0)
End If
Case "Check18N"
If BolCheck Then
ActiveDocument.Bookmarks("Check18NTxt").Range.Font.Color = RGB(255, 0, 0)
Else
ActiveDocument.Bookmarks("Check18NTxt").Range.Font.Color = RGB(0, 0, 0)
End If
Case "Check19N"
If BolCheck Then
ActiveDocument.Bookmarks("Check19NTxt").Range.Font.Color = RGB(255, 0, 0)
Else
ActiveDocument.Bookmarks("Check19NTxt").Range.Font.Color = RGB(0, 0, 0)
End If
Case "Check20N"
If BolCheck Then
ActiveDocument.Bookmarks("Check20NTxt").Range.Font.Color = RGB(255, 0, 0)
Else
ActiveDocument.Bookmarks("Check20NTxt").Range.Font.Color = RGB(0, 0, 0)
End If
Case "Check21N"
If BolCheck Then
ActiveDocument.Bookmarks("Check21NTxt").Range.Font.Color = RGB(255, 0, 0)
Else
ActiveDocument.Bookmarks("Check21NTxt").Range.Font.Color = RGB(0, 0, 0)
End If
Case "Check22N"
If BolCheck Then
ActiveDocument.Bookmarks("Check22NTxt").Range.Font.Color = RGB(255, 0, 0)
Else
ActiveDocument.Bookmarks("Check22NTxt").Range.Font.Color = RGB(0, 0, 0)
End If
End Select
Next FF
If ActiveDocument.ProtectionType = wdNoProtection Then
ActiveDocument.Protect _
Type:=wdAllowOnlyFormFields, NoReset:=True, Password:="password"
End If
MsgBox "Finished", vbOKOnly, "Update Form"
Exit Sub
ERRUpdateForm:
Debug.Print "UpdateForm," & Err.Number & ","; Err.Description
Resume Next
End Sub
Sub ResetForm()
On Error GoTo ERRResetForm
ActiveDocument.Unprotect "password"
Dim BM As Bookmark
For Each BM In ActiveDocument.Bookmarks
If UCase(Right(BM.Name, 3)) = "TXT" Then
BM.Range.Font.Color = RGB(0, 0, 0)
End If
Next BM
If ActiveDocument.ProtectionType = wdNoProtection Then
ActiveDocument.Protect _
Type:=wdAllowOnlyFormFields, NoReset:=False, Password:="password"
End If
MsgBox "Finished", vbOKOnly, "Reset Form"
Exit Sub
ERRResetForm:
Debug.Print "ResetForm," & Err.Number & ","; Err.Description
Resume Next
End Sub
答案 0 :(得分:0)
为了摆脱消息框,删除这些行:
MsgBox "Finished", vbOKOnly, "Update Form"
MsgBox "Finished", vbOKOnly, "Reset Form"
MsgBox "UpdateForm"
为了使用粗体字体:
ActiveDocument.Bookmarks("Check01Txt").Range.Font.Bold = True