사용자 양식의 콤보 상자는 사용 가능한 옵션에서 옵션을 선택하는 데 사용할 수있는 드롭 다운 메뉴와 같습니다. 워크 시트에서 데이터 유효성 검사를 사용하여 만든 드롭 다운과 같습니다.

대부분의 디지털 양식에서 적어도 하나의 콤보 상자를 보았을 것입니다. 주 목록에서 주를 선택하거나 과정 목록에서 과정을 선택하거나 국가 목록에서 국가를 선택할 수 있습니다.이 기사에서는 VBA 사용자 양식에 콤보 상자를 추가하는 방법을 배우고, 값으로 콤보 상자를 초기화하고 콤보 상자에서 값을 검색하는 방법.

사용자 양식에 콤보 상자 추가 사용자 양식에 콤보 상자를 추가하려면 먼저 사용자 양식이 있어야합니다.

Dah !. 따라서 CTRL + F11을 사용하여 VBE를 엽니 다. 통합 문서를 마우스 오른쪽 버튼으로 클릭하고 삽입으로 이동하여 사용자 양식을 클릭하십시오. 사용자 양식이 추가되었습니다. VBA`link : / applications-word-outlook-in-vba-getting-started-with-excel-vba-userforms [here]`에서 사용자 양식에 대해 자세히 읽을 수 있습니다.

image

이제 도구 상자에서 콤보 상자를 선택하십시오. 맨 윗줄에있는 네 번째 옵션입니다. 도구 상자가 보이지 않는 경우. 메뉴에서보기로 이동하여 도구 상자를 클릭합니다. 도구 상자가 나타납니다.

image

이 콤보 상자에는 일부 상태 목록과 양식을 제출하기위한 제출 버튼이 포함되므로 상태 레이블을 추가했습니다.

userform에서 콤보 박스를 초기화하는 방법은 무엇입니까? 이것은 대부분의 사람들이 실수하는 부분입니다. 때때로 학습자는 콤보 박스에 값을로드하기위한 코드를 작성한 다음 버튼을 제출합니다. 그리고 사용자 양식을로드 할 때 콤보 상자에 값이 표시되지 않습니다. 콤보 박스를로드하려면 사용자 폼을로드하기 전에 코드를 작성해야합니다. 이는 모듈, c 또는 양식을로드하는 단추에서 수행 할 수 있습니다. 콤보 상자 목록을로드하는 코드는 formname.show 명령 앞에 와야합니다.

사용자 폼 호출 서브 루틴에 콤보 박스로드

상태 콤보 박스에 일부 배열을 하드 코딩하고 싶다고 가정 해 보겠습니다. 그래서 정보를 채우기 위해 사용자 폼을로드하는 서브 루틴을 작성하겠습니다. 아래 코드를 참조하십시오.

Sub load_userform()

states = Array("Delhi", "UP", "UK", "Gujrat", "Kashmir")

UserForm1.ComboBox1.List = states

UserForm1.Show

End Sub

나는 몇 가지 인도 주 이름을 포함하는 배열 “주”를 정의합니다.

이제 combobox가 userform의 일부이므로 combobox에 액세스하기 위해 userform 이름을 사용합니다.

내 사용자 양식의 이름은 userform1입니다. 그리고 combobox의 이름은 combobox1입니다. 기본 이름입니다. 속성 창에서 변경할 수 있습니다.

다음으로 콤보 박스의 목록 속성을 상태로 초기화합니다.

그런 다음 show 명령을 사용하여 userform1을 표시합니다.

위 코드를 실행하면 콤보 박스에 모든 상태가 나열됩니다.

image

UserForm_Initialize () 이벤트를 사용하여 콤보 박스 초기화.

userform에 combobox 구성 요소를로드하는 또 다른 방법은 userform 이벤트 Initialize를 사용하는 것입니다. 이 이벤트는 사용자 양식이로드되기 전에 실행됩니다.

사용자 양식이로드되기 전에 수행 할 작업은 여기에서 수행 할 수 있습니다.

그중 하나는 콤보 박스 요소를로드하는 것입니다. 따라서 사용자 양식을 두 번 클릭하여 사용자 양식 개체의 코딩 영역을 엽니 다. 이제 왼쪽 드롭 다운 메뉴에서 사용자 양식을 선택합니다. 그런 다음 오른쪽 드롭 다운 메뉴에서 초기화를 선택합니다.

image

빈 하위 이름 UserForm_Initialize ()가 삽입됩니다. 이 서브에 작성된 모든 것은 사용자 폼이 나타나기 전에 실행됩니다.

그래서 여기에 combobox의 초기화 코드를 작성합니다.

Private Sub UserForm_Initialize()

states = Array("Delhi", "UP", "UK", "Gujrat", "Kashmir")

UserForm1.ComboBox1.List = states

End Sub

여기에는 userform1.show 명령이 없습니다. 여전히 해당 모듈에 있습니다. 해당 서브는 화면에 사용자 양식을 표시하는 데 사용됩니다.

Sub load_userform()

UserForm1.Show

End Sub

따라서 사용자는 일부 명령, 버튼 또는 매크로 할당 요소를 사용하여 load_userform sub를 실행합니다. 컴파일러가 code userform1.show 명령을 실행하면 즉시 useforma_initialize () 이벤트가 실행됩니다. 이후 사용자에게 사용자 양식을 보여줍니다.

참고 :

button1 click 명령의 값으로 combobox를 초기화하는 코드를 작성하면 combobox에 아무것도 표시되지 않습니다.

값으로 콤보 상자를 초기화하려면 사용자가 채울 콤보 상자에 도달하기 전에 발생하는 모든 이벤트에서로드합니다.

ComboBox에서 값 가져 오기 그래서 우리는 몇 가지 정보를 얻기 위해 양식을 사용합니다. 그리고 그 정보를 사용하기 위해 우리는 그것들을 검색해야합니다. userform 콤보 박스에서 값을 얻으려면 combobox.value 속성을 사용합니다. 일반적으로 사용자가 양식을 완성하고 제출 버튼을 사용하여 양식을 제출하면 양식 요소에서 값을 검색합니다. 따라서 commandbutton_click 이벤트를 사용할 수 있습니다. 따라서 명령 단추를 삽입하고 이미없는 경우 제출을 작성하십시오. 이제 두 번 클릭하면 commandButton_click 이벤트 내부에 있습니다.

이제 값을 저장할 변수를 만듭니다. 원하는 경우 시트에 저장하십시오. 마지막으로 Unload Me 명령을 사용하여 양식을 종료합니다. 아래 코드와 같이.

Private Sub CommandButton1_Click()

State = ComboBox1.Value

ThisWorkbook.Worksheets("sheet1").Range("A1") = State

Unload Me

End Sub

예, 이것이 VBA 사용자 양식에서 콤보 상자를 사용하는 방법입니다. 나는 내가 설명적이고 요점 이었기를 바랍니다. 이 주제 또는 기타 VBA 관련 질문에 대한 질문이 있으면 아래 댓글 섹션에서 저에게 질문하십시오.

관련 기사 :

link : / applications-word-outlook-in-vba-getting-started-with-excel-vba-userforms [Getting Started With Excel VBA UserForms]| * Excel에서 양식을 만드는 방법, 사용 방법을 설명합니다. VBA 도구 상자, 사용자 입력 처리 방법 및 마지막으로 사용자 입력 저장 방법. 하나의 예제와 단계별 가이드를 사용하여 이러한 주제를 살펴 보겠습니다.

link : / general-topics-in-vba-vba-variables-in-excel [Excel의 VBA 변수]| * VBA는 Visual Basic for Applications를 나타냅니다.

Microsoft의 프로그래밍 언어입니다. MSExcel, MS-Word 및 MS-Access와 같은 Microsoft Office 응용 프로그램에서 사용되는 반면 VBA 변수는 특정 키워드입니다.

link : / general-topics-in-vba-excel-vba-variable-scope [Excel VBA Variable Scope]| * 모든 프로그래밍 언어에는 정의 된 변수에 액세스 할 수있는 위치를 정의하는 변수 액세스 지정자가 있습니다. Excel VBA도 예외는 아닙니다. VBA에도 범위 지정자가 있습니다.

link : / cells-ranges-rows-and-columns-in-vba-byref-and-byval-arguments-vba-interview-question [ByRef 및 ByVal 인수]| 인수가 ByRef 인수로 다른 하위 또는 함수에 전달되면 실제 변수의 참조가 전송됩니다. 변수 복사본에 대한 변경 사항은 원래 인수에 반영됩니다.

link : / files-workbook-and-worksheets-in-vba-delete-sheets-without-confirmation-prompts-using-vba-in-microsoft-excel [Microsoft Excel에서 VBA를 사용하여 확인 메시지없이 시트 삭제]| VBA를 사용하여 시트를 삭제하고 있으므로 수행중인 작업을 알고 있습니다.

이 경고를 표시하지 않고 망할 시트를 삭제하도록 Excel에 지시하고 싶습니다.

link : / files-workbook-and-worksheets-in-vba-add-and-save-new-workbook-using-vba-in-microsoft-excel [Microsoft Excel 2016에서 VBA를 사용하여 새 통합 문서 추가 및 저장]| 이 코드에서는 먼저 통합 문서 개체에 대한 참조를 만들었습니다. 그런 다음 새 통합 문서 개체로 초기화했습니다. 이 접근 방식의 이점은이 새 통합 문서에서 작업을 쉽게 수행 할 수 있다는 것입니다. 저장, 닫기, 삭제 등`link : / menus-toolbars-status-bar-in-vba-display-a-message-on-the-statusbar-using-vba-in-microsoft-excel [메시지 표시 켜기 Excel VBA 상태 표시 줄 *]`| Excel의 상태 표시 줄은 코드 모니터로 사용할 수 있습니다. VBA 코드가 길고 VBA를 사용하여 여러 작업을 수행하는 경우 화면 깜박임이 표시되지 않도록 화면 업데이트를 비활성화하는 경우가 많습니다.

link : / general-topics-in-vba-turn-off-warning-messages-using-vba-in-microsoft-excel [Microsoft Excel 2016에서 VBA를 사용하여 경고 메시지 끄기]| *이 코드는 VBA를 비활성화 할뿐만 아니라 경고뿐만 아니라 코드의 시간 효율성도 증가시킵니다. 방법을 봅시다.

인기 기사 :

link : / keyboard-formula-shortcuts-50-excel-shortcuts-to-increase-your-productivity [50 개의 Excel 단축키로 생산성 향상]| 작업 속도를 높이십시오. 이 50 개의 바로 가기를 사용하면 Excel에서 더 빠르게 작업 할 수 있습니다.

link : / formulas-and-functions-introduction-of-vlookup-function [Excel의 VLOOKUP 함수]| 이것은 다른 범위와 시트에서 값을 조회하는 데 사용되는 Excel의 가장 많이 사용되고 인기있는 기능 중 하나입니다. link : / tips-countif-in-microsoft-excel [Excel 2016의 COUNTIF]| 이 놀라운 기능을 사용하여 조건으로 값을 계산합니다. 특정 값을 계산하기 위해 데이터를 필터링 할 필요가 없습니다.

Countif 기능은 대시 보드를 준비하는 데 필수적입니다.

link : / excel-formula-and-function-excel-sumif-function [Excel에서 SUMIF 함수 사용 방법]| 이것은 또 다른 대시 보드 필수 기능입니다. 이를 통해 특정 조건에 대한 값을 합산 할 수 있습니다.