/ / Excel VBA 멀티 컬럼 콤보 상자

Excel VBA 다중 열 콤보 상자

아래에서 우리는 Excel VBA 사용자 정의 폼을 생성하는 여러 열 콤보 상자.

우리가 생성 할 Userform은 다음과 같습니다.

Excel VBA의 다중 열 콤보 상자

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

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

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

Excel VBA의 사용자 폼 화면 설정

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

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

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()

ComboBox1.ColumnCount = 2

Dim Films(1 To 5, 1 To 2) As String
Dim i As Integer, j As Integer

Films(1, 1) = "Lord of the Rings"
Films(2, 1) = "Speed"
Films(3, 1) = "Star Wars"
Films(4, 1) = "The Godfather"
Films(5, 1) = "Pulp Fiction"

Films(1, 2) = "Adventure"
Films(2, 2) = "Action"
Films(3, 2) = "Sci-Fi"
Films(4, 2) = "Crime"
Films(5, 2) = "Drama"

ComboBox1.List = Films

End Sub

설명: 첫 번째 코드 줄은 콤보 상자의 열 수를 2로 설정합니다. 런타임에 열 수를 설정하는 대신 디자인 타임에이 설정을 구성 할 수도 있습니다. 이 작업을 수행하려면 콤보 상자 컨트롤을 마우스 오른쪽 단추로 클릭하고 속성을 클릭 한 다음 ColumnCount 속성을 2로 설정합니다. 그런 다음 2 차원 배열을 선언하고 초기화합니다. 마지막 코드 행은 배열을 콤보 상자에 지정합니다.

우리는 이제 Userform의 첫 번째 부분을 만들었습니다. 이미 깔끔하게 보이지만 사용자 폼의 명령 단추를 클릭하면 아무 것도 나타나지 않습니다.

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

11. 확인 버튼을 두 번 클릭하십시오.

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

Private Sub CommandButton1_Click()

Unload Me

MsgBox "You selected " & ComboBox1.Value

On Error Resume Next
MsgBox "You like " & ComboBox1.Column(1) & " movies"

End Sub

노트 : 이러한 코드 줄은 Excel VBA Userform을 닫고 선택한 항목과 장르를 표시합니다. "On Error Resume Next"문은 사용자가 자신의 영화를 채울 때 오류를 무시합니다 (이 경우에는 사용할 수있는 장르가 없습니다).

13. 취소 버튼을 두 번 클릭하십시오.

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

Private Sub CommandButton2_Click()

Unload Me

End Sub

Speed를 선택하고 OK를 클릭하면 결과가 나타납니다.

여러 열 콤보 상자 결과

여러 열 콤보 상자 결과

또한 읽으십시오 :