/ Excel VBA에서 루프 / 컨트롤 반복

Excel VBA에서 컨트롤을 통해 반복

몇 줄의 코드 만 있으면 쉽게 컨트롤을 통해 반복 ~에 Excel VBA 사용자 폼. 우리가 생성 할 Userform은 다음과 같습니다.

Excel VBA에서 컨트롤을 통해 반복

이 사용자 정의 폼을 만들려면 다음 단계를 수행하십시오.

1. Visual Basic Editor를 엽니 다. 프로젝트 탐색기가 보이지 않으면보기, 프로젝트 탐색기를 클릭하십시오.

2. Insert, Userform을 클릭하십시오. 도구 상자가 자동으로 나타나지 않으면보기, 도구 상자를 클릭하십시오. 화면은 다음과 같이 설정해야합니다.

Excel VBA의 사용자 폼 화면 설정

삼. 레이블을 추가하고 첫 번째 상자의 맨 위에있는 확인란을 선택하고 첫 번째 상자의 아래 두 번째 상자 등을 지정하고 명령 단추를 클릭하십시오. 이 작업이 완료되면 이전에 표시된 Userform 그림과 일치해야합니다. 예를 들어 도구 상자에서 CheckBox를 클릭하여 확인란 컨트롤을 만듭니다. 그런 다음 사용자 정의 폼의 확인란을 끌 수 있습니다.

4. 컨트롤의 이름과 캡션을 변경할 수 있습니다. 이름은 Excel VBA 코드에서 사용됩니다. 자막은 화면에 나타나는 자막입니다. 컨트롤의 이름을 변경하는 것이 좋지만이 예제에는 컨트롤이 몇 개 있기 때문에 여기서는 필요하지 않습니다. Userform, 레이블, 확인란 및 명령 단추의 캡션을 변경하려면보기, 속성 창을 클릭하고 각 컨트롤을 클릭하십시오.

5. 사용자 정의 폼을 표시하려면 워크 시트에 명령 단추를 놓고 다음 코드 줄을 추가하십시오.

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

우리는 이제 Userform의 첫 번째 부분을 만들었습니다. 이미 깔끔하게 보였지만 Clear 버튼을 클릭해도 아무런 변화가 없습니다.

6. Visual Basic Editor를 엽니 다.

7. 프로젝트 탐색기에서 UserForm1을 두 번 누릅니다.

8. 지우기 단추를 두 번 클릭하십시오.

9. 다음 코드 행을 추가하십시오.

Private Sub CommandButton1_Click()

Dim contr As control

For Each contr In UserForm1.Controls
    If TypeName(contr) = "CheckBox" Then
        contr.Value = False
    End If
Next

End Sub

설명: Excel VBA는 Userform의 모든 컨트롤을 반복합니다. TypeName 함수는 확인란 컨트롤을 필터링하는 데 사용됩니다. 확인란 컨트롤 인 경우 Excel VBA는 확인란의 선택을 취소합니다. 여기에서 무작위로 contr을 선택하면 모든 이름을 사용할 수 있습니다. 나머지 코드에서이 이름을 참조하는 것을 잊지 마십시오.

지우기 단추를 클릭하면 결과 :

Loop Through 컨트롤 결과

또한 읽으십시오 :