2016-09-21 6 views
1

많은 페이지가있는 단어 문서와 각 단계 이후에 ActiveX 컨트롤 확인란이있는 섹션이 있습니다.Word의 VBA 확인란

문서의 끝에는 섹션 이름이있는 완료 테이블이 있으며 특정 섹션의 마지막 확인란이 선택되어 있으면 테이블의 해당 부분이 녹색으로 바뀝니다.

1 : : 예는 그래서

텍스트

(체크 박스 1)

moretext

(체크 박스 2)

evenmoretext

(체크 박스 3)

완료 목록 :

제 1

무엇을 달성하려고하는 것은 확인 후 체크 박스의 모든 쳤다되어 있는지 확인하고, 몇 가지 VBA를 가지고있는 테이블의 한 부분을 녹색 끝에 놓으십시오.

현재 녹색으로 바뀌므로 마지막 체크 박스 (3)가 선택된 경우에만 작동합니다.

어쨌든 이것을 할 수 있습니까?

또 다른 문제가 있습니다. 문서 상단에 몇 개의 섹션이 숨겨져있는 버튼이 있습니다.이 버튼을 누르면 가장 먼저 숨길 체크 상자가 선택됩니다. (어떤 부분을 숨기고 싶은지 보여주기 위해 페이지 나누기를 사용합니다.)

그러나 이것은 ActiveX 체크 상자가 숨기지 않기 때문에 문제가됩니다. 따라서 VBA를 작성하여 매우 작게 만든 다음 끝났다.

Private Sub DTSCheckBox_Click() 

    If (DTSCheckBox.Value = True And AdminCheckBox.Value = True) Then 
     Section2Complete.Caption = "Complete" 
     Section2Complete.BackColor = RGB(0, 255, 0) 
     CheckAndAmmendBy.Caption = UpgradeTechnic.Text 
    Else 
     Section2Complete.Caption = "Outstanding" 
     Section2Complete.BackColor = RGB(255, 0, 0) 
     CheckAndAmmendBy.Caption = "" 
    End If 

End Sub 

Private Sub V4ToV6Button_Click() 

    ActiveDocument.Sections(2).Range.Font.Hidden = True 
    ActiveDocument.Sections(4).Range.Font.Hidden = True 
    ActiveDocument.Sections(6).Range.Font.Hidden = True 
    ActiveDocument.Sections(8).Range.Font.Hidden = True 
    Section15Complete.Caption = "": Section15Complete.BackColor = RGB(255, 255, 255) 
    ActiveDocument.Tables(1).Rows(15).SetHeight 1, wdRowHeightExactly 
    SQLScriptCheckbox.Value = True 
    SQLScriptCheckbox.Height = 1 
    SQLScriptCheckbox.Width = 1 
    SQLScriptCheckbox.Enabled = False 
    RestoreEmailScriptCheckBox.Value = True 
    RestoreEmailScriptCheckBox.Height = 1 
    RestoreEmailScriptCheckBox.Width = 1 
    RestoreEmailScriptCheckBox.Enabled = False 
    SQLCleanScriptCheckBox.Value = True 
    SQLCleanScriptCheckBox.Height = 1 
    SQLCleanScriptCheckBox.Width = 1 
    SQLCleanScriptCheckBox.Enabled = False 
    SandboxJobHasBeenSetUpCheckBox.Value = True 
    SandboxJobHasBeenSetUpCheckBox.Width = 1 
    SandboxJobHasBeenSetUpCheckBox.Height = 1 
    SandboxJobHasBeenSetUpCheckBox.Enabled = False 

End Sub 

답변

1

내가 당신의 디자인이 무엇인지 정확히 모르겠지만, 당신은 3 확인란을 가정하고이 세 가지를 모두 선택하는 경우 섹션을 숨기려면 나 : 여기

내가 지금까지 가지고있는 VBA입니다 나는 체크 박스를 클릭 할 때 섹션 언제의 형식으로 업데이트하는 별도의 함수를 작성하는 것이 좋습니다 (사용자가 세 가지 중 하나를 선택하거나 선택 취소하면 섹션을 재-보여주는 포함), 그렇지 않은 부분을 보여

Private Sub CheckBox21_Click() 
    UpdateSection 
End Sub 

Private Sub CheckBox22_Click() 
    UpdateSection 
End Sub 

Private Sub CheckBox23_Click() 
    UpdateSection 
End Sub 

Public Sub UpdateSection() 
    If CheckBox21.Value = True And CheckBox22.Value = True And CheckBox23.Value = True Then 
     'Code to hide section 
    Else 
     'Code to show section 
    End If 
End Sub 
+0

멋진 사람, 감사 도움을 위해, 그것은 대접을 움직이게한다! – Steve101

+0

@ Steve101이 답변이 도움이 되었다면, 녹색 체크 표시를 클릭하여 답을 "수락"할 수 있습니다. – Blackhawk