/ / Excel VBA 종속 콤보 상자

Excel VBA 종속 콤보 상자

아래에서 우리는 Excel VBA 다음을 포함하는 Userform을 만듭니다. 종속 콤보 상자. 우리가 생성 할 Userform은 다음과 같습니다.

사용자는 드롭 다운 목록에서 동물을 선택합니다. 결과적으로 사용자는 두 번째 드롭 다운 목록에서 동물을 선택할 수 있습니다.

Excel VBA의 종속 콤보 상자

사용자가 드롭 다운 목록에서 스포츠를 선택합니다. 결과적으로 사용자는 두 번째 드롭 다운 목록에서 스포츠를 선택할 수 있습니다.

Excel VBA의 종속 콤보 상자

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

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

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

Excel VBA의 사용자 폼 화면 설정

삼. 콤보 상자 (첫 번째는 왼쪽, 두 번째는 오른쪽)와 명령 단추를 추가하십시오. 이 작업이 완료되면 이전에 표시된 Userform 그림과 일치해야합니다. 예를 들어, 도구 상자에서 ComboBox를 클릭하여 콤보 상자 컨트롤을 만듭니다. 그런 다음 사용자 정의 폼에 콤보 상자를 끌어 놓을 수 있습니다.

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

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

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

이제 Sub UserForm_Initialize를 만들겠습니다. 사용자 정의 폼에 Show 메서드를 사용하면이 하위가 자동으로 실행됩니다.

6. Visual Basic Editor를 엽니 다.

7. 프로젝트 탐색기에서 UserForm1을 마우스 오른쪽 단추로 누른 다음 코드보기를 누릅니다.

8. 왼쪽 드롭 다운 목록에서 사용자 양식을 선택하십시오. 오른쪽 드롭 다운 목록에서 초기화를 선택하십시오.

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

Private Sub UserForm_Initialize()

With ComboBox1
    .AddItem "Animals"
    .AddItem "Sports"
    .AddItem "Food"
End With

End Sub

3m :이 코드 행은 첫번째 콤보 상자를 채 웁니다.

우리는 이제 Userform의 첫 번째 부분을 만들었습니다. 이미 깔끔하게 보였지만 첫 번째 콤보 상자에서 항목을 선택하면 아무 것도 나타나지 않습니다.

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

11. 첫 번째 콤보 상자를 두 번 클릭합니다.

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

Private Sub ComboBox1_Change()

Dim index As Integer
index = ComboBox1.ListIndex

ComboBox2.Clear

Select Case index
    Case Is = 0
        With ComboBox2
            .AddItem "Dog"
            .AddItem "Cat"
            .AddItem "Horse"
        End With
    Case Is = 1
        With ComboBox2
            .AddItem "Tennis"
            .AddItem "Swimming"
            .AddItem "Basketball"
        End With
    Case Is = 2
        With ComboBox2
            .AddItem "Pancakes"
            .AddItem "Pizza"
            .AddItem "Chinese"
        End With
End Select

End Sub

설명: Excel VBA는 가변 인덱스 값을 사용하여 각 후속 Case 문을 테스트하여 두 번째 콤보 상자를 채울 항목을 확인합니다. Select Case 구조에 대한 자세한 내용은 Select Case 프로그램을 참조하십시오.

13. 가져 오기 버튼을 두 번 클릭하십시오.

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

Private Sub CommandButton1_Click()

Range("A1").Value = ComboBox2.Value

End Sub

결과:

Excel VBA의 종속 콤보 상자

또한 읽으십시오 :