어떻게 사용 VBA 사용자 정의 폼 컨트롤에
VBA의 사용자 양식은 사용자로부터 입력을 받고 때로는 출력과 메시지를 표시하는 데 사용됩니다. userform`link : / applications-word-outlook-in-vba-getting-started-with-excel-vba-userforms [here]`의 기본 사항에 대해 알아 봅니다.
사용자 양식은 입력에 대해 여러 구성 요소를 가질 수 있습니다.
이러한 구성 요소를 UserForm의 컨트롤이라고합니다.
여러 유형의 사용자 양식 컨트롤이 있으며, 각 컨트롤은 서로 다른 속성을 가지며 다른 이유로 사용됩니다. 사용자 폼 컨트롤의 각 유형을 언제 어떻게 사용하는지 아는 것이 유용합니다. 이 기사에서는 Excel VBA에서 UserForm 컨트롤을 사용하는 방법을 배웁니다.
UserForms 컨트롤의 유형
VBA에 사용자 정의 컨트롤이 너무 많습니다. 이 기사에서는 주요 양식 컨트롤에만 초점을 맞출 것입니다.
1 : 레이블
2 : 텍스트 상자
3 : ComboBox
4 : ListBox
5 : 체크 박스
6 : OptionButton
7 : ToggleButton
8 : CommandButton
9 : 프레임
이 모든 컨트롤을 살펴 보겠습니다.
레이블 :
레이블은 단순히 텍스트 레이블을 표시하는 데 사용됩니다. 입력 영역, 경고, 방향 등의 레이블과 같습니다.
사용자 폼에 레이블을 추가하려면 도구 상자에서 레이블 옵션 (아이콘)을 선택하기 만하면됩니다. 커서가 더하기 기호로 바뀝니다. 레이블을 넣을 영역으로 끕니다.
텍스트 상자 :
텍스트 상자는 사용자의 기본 개방형 입력 옵션입니다. 사용자는 원하는 입력을 간단히 입력 할 수 있습니다. 기본 시나리오는 이름 입력입니다.
마우스를 텍스트 상자 위로 가져갈 때 일부 메시지를 표시하려면 속성 창의 ControlTipText에 작성하십시오.
ComboBox :
콤 박스는 클릭시 항목 목록을 표시하는 데 사용됩니다. 사용자는 목록에서 표시되는 항목을 쉽게 선택하거나 직접 입력 할 수 있습니다.
사용자가 선택할 수있는 선택적 목록이있는 경우 Excel VBA에서 ComboBox를 사용합니다. 사용자는 목록에서 선택하거나 답변을 수동으로 입력 할 수 있습니다.
도구 상자에서 콤보 상자를 선택하고 양식을 끕니다. 양식에 즉시 콤보 상자가 삽입됩니다. combox의 기본 이름은 Combobox1, 2, 3 등입니다. 속성 상자에서 변경할 수 있습니다.
ComboBox에 항목을 삽입하는 방법?
이제 양식에 콤보 상자를 추가했습니다. 그러나 userform을로드하면 콤보 상자에 아무것도 표시되지 않습니다. 아직 콤보 박스에 항목을 추가하지 않았기 때문입니다.
이 예에서는 사용자 양식이 초기화 (로드) 될 때 콤보 상자에 항목을 추가하고 싶습니다. 그래서 우리는 “초기화”조차도 사용자 폼을 사용할 것입니다.
전체 사용자 양식을 선택하려면 사용자 양식 (구성 요소가 아님)을 마우스 오른쪽 단추로 클릭하십시오. 보기 코드를 선택하십시오.
From`link : / events-in-vba-the-events-in-excel-vba [events]`
, 초기화를 선택합니다.
이제 ComboBox Class의 AddItem 속성을 사용하고 원하는 항목을 추가합니다.
Private Sub UserForm_Initialize() ComboBox1.AddItem "2016" ComboBox1.AddItem "2017" ComboBox1.AddItem "2018" ComboBox1.AddItem "2019" ComboBox1.AddItem "2020" End Sub
UserForm_Initialize () 이벤트에 항목을 추가하고 있으므로 사용자 양식이로드 될 때 모든 항목이 콤보 상자에 추가됩니다.
ComboBox에서 선택한 항목 검색
콤보 박스에서 선택한 항목을 사용하려면 ComboBox의 Value 속성을 사용하면됩니다.
Private Sub CommandButton1_Click() MsgBox ComboBox1.Value End Sub
여기에서는 사용자가 명령 버튼을 클릭 할 때 선택한 값을 보여줍니다 (아래의 명령 버튼 클릭 이벤트가 표시됩니다).
목록 상자
ListBox는 사용자가 정의 된 목록에서 선택하기를 원할 때 사용됩니다.
ComboBox와 비슷하게 들리나요? 예, 목록 상자는 사용자가 목록 상자에 답을 입력 할 수 없다는 점을 제외하면 ComboBox와 매우 유사합니다.
사용 가능한 옵션에서만 선택해야합니다.
양식에 목록 상자를 삽입하려면 도구 상자에서 목록 상자를 선택하고 양식 영역에 드롭합니다.
목록 상자의 기본 이름은 유 전적으로 listbox1, 2, 3 등입니다.
속성 상자에서 변경할 수 있습니다.
ComboBox와 마찬가지로 VBA 목록 상자는 처음에 비어 있습니다. 초기화하려면 목록 상자 클래스의 add 속성을 사용하면됩니다.
목록 상자에 항목을 추가하는 방법은 무엇입니까?
폼의 초기화 이벤트에서 콤보 박스 목록에 항목을 추가 했으므로 동일한 이벤트에 목록 상자의 항목을 추가합니다. 위의 initialize 이벤트를 편집하여 사용자 양식이로드 될 때 항목을 추가하십시오.
Private Sub UserForm_Initialize() ComboBox1.AddItem "2016" ComboBox1.AddItem "2017" ComboBox1.AddItem "2018" ComboBox1.AddItem "2019" ComboBox1.AddItem "2020" 'Adding Item to List ListBox1.AddItem "Jan" ListBox1.AddItem "Feb" ListBox1.AddItem "Mar" ListBox1.AddItem "Apr" ListBox1.AddItem "May" ListBox1.AddItem "Jun" ListBox1.AddItem "Jul" ListBox1.AddItem "Aug" ListBox1.AddItem "Sep" ListBox1.AddItem "Oct" ListBox1.AddItem "Nov" ListBox1.AddItem "Dec" End Sub
위의 코드는 양식을로드하자마자 목록 상자에 월 이름을 추가합니다.
ListBox에서 선택한 항목 검색
사용자가 ListBox에서 선택한 항목을 검색하려면 목록 상자 개체의 Value 속성을 사용합니다.
여기에서 사용자가 선택한 월을 콤보 상자에 제공된 입력에 추가합니다.
Private Sub CommandButton1_Click() MsgBox ComboBox1.Value & "-" & ListBox1.Value End Sub
명령 버튼을 누르면 선택한 항목이 msgbox에 표시됩니다.
CheckBox VBA 컨트롤
CheckBox는 True 또는 False로 설정할 수있는 이진 컨트롤입니다.
여러 확인란을 사용할 수 있으며 한 번에 둘 이상의 확인란을 선택할 수 있습니다. 이것은 기본적으로 사용자가 하나 이상의 옵션을 선택할 수 있어야 할 때 사용됩니다. 객관식 질문처럼.
사용자 양식에 확인란을 추가하려면 도구 상자에서 확인란을 선택하고 VBA 사용자 양식 영역으로 드래그하면됩니다.
사용자 폼에 체크 박스를 추가하면 체크 박스의 기본 이름은 체크 박스 1, 체크 박스 2 등이됩니다. 속성 상자에서 체크 박스 이름을 변경할 수 있습니다.
userform의 확인란을 사용하는 방법은 무엇입니까?
체크 박스를 추가하면 바로 클릭 할 수 있습니다. 사용자는이를 선택하거나 선택 취소 할 수 있습니다. 그러나 어떤 확인란이 선택되었는지, 어떤 확인란이 선택되지 않았는지 어떻게 알 수 있습니까?
내가 말했듯이 확인란은 부울입니다. 따라서 확인란이 선택되면 값은 True이고 그렇지 않으면 값이 False입니다.
아래 코드는 선택된 확인란을 확인하고 메시지 상자에 표시합니다.
Private Sub CommandButton1_Click() Dim msg As String If CheckBox1.Value = True Then msg = msg & "CheckBox1 is selected" End If If CheckBox2.Value = True Then msg = msg & vbCrLf & "CheckBox2 is selected" End If MsgBox msg End Sub
사용자가 사용자 양식에서 하나의 옵션 만 선택할 수 있도록하려면 라디오 버튼을 사용하십시오.
OptionButton VBA 컨트롤
라디오 / 옵션 버튼은 사용자가 사용 가능한 옵션에서 하나의 옵션 만 선택하도록 할 때 VBA 사용자 양식에서 사용됩니다. 양식에서 성별, 선호하는 언어, 연령대 등을 묻는 경우와 같습니다.
라디오 버튼은 도구에서 선택하고 양식 영역에서 끌어서 사용자 양식에 쉽게 추가 할 수 있습니다. 여러 라디오 버튼에 라디오 버튼을 여러 번 드래그 앤 드롭합니다.
라디오 / 옵션 버튼을 선택하는 방법은 무엇입니까?
라디오 버튼은 바이너리입니다. 값은 True 또는 False 일 수 있습니다.
선택한 라디오 버튼은 True로 설정되고 다른 모든 버튼은 False로 설정됩니다. 한 그룹에서 한 번에 하나의 라디오 버튼 만 적용됩니다.
아래 코드는 단순히 어떤 라디오 버튼이 선택되었는지 확인하고 그에 따라 메시지를 표시합니다.
Private Sub CommandButton1_Click() Dim gender As String If OptionButton1.Value = True Then gender = "Male" ElseIf OptionButton2.Value = True Then gender = "female" Else gender = "other" End If MsgBox gender End Sub
위의 예에서는 사용자 양식에서 하나의 옵션 버튼 만 선택할 수 있습니다. 그러나 여러 그룹의 옵션 버튼을 원한다면 어떻게 될까요? 이 경우 프레임을 사용합니다. 그리고 그것은 우리를 …
VBA 사용자 양식의 프레임
프레임은 확인란 및 옵션 버튼과 같은 사용자 양식 개체를 그룹화하는 데 사용됩니다.
프레임을 사용하려면 먼저 해당 프레임을 양식 영역에 끌어다 놓은 다음 해당 프레임에 다른 개체를 놓습니다.
속성 상자의 캡션에서 프레임 이름을 변경할 수 있습니다.
모든 이벤트는 다른 사용자 양식 객체로도 프레임에 사용할 수 있습니다. 그러나 바람직하게는 개체를 그룹화하는 데 사용합니다. 프레임에 onclick 이벤트를 설정하여 클릭 할 때 그 안의 객체에 대한 몇 가지 기본 정보를로드 할 수 있습니다.
VBA 사용자 양식의 토글 버튼
토글 버튼은 켜기 및 끄기로 설정할 수있는 바이너리 개체이기도합니다. 토글 버튼을 사용하여 항목을 켜고 끌 수 있습니다.
사용자 양식에 토글 버튼을 추가하려면 도구에서 선택하고 양식 영역으로 드래그하면됩니다.
아래 코드는 토글 버튼의 onclick 이벤트에 설정됩니다. 토글 버튼을 누르면 셀 A1의 색상이 파란색으로 변경되고 토글 버튼을 누르면 재설정됩니다.
Private Sub ToggleButton1_Click() If ToggleButton1.Value Then Range("A1").Interior.ColorIndex = 32 Else Range("A1").Interior.ColorIndex = xlColorIndexNone End If End Sub
VBA 사용자 양식의 명령 단추
유효성 검사, 계산, 양식 제출 등과 같은 기본 VBA 코드를 실행하는 데 사용하는 버튼입니다.
위의 예에서는 명령 단추를 사용하여 양식을 제출했습니다. 사용자 양식에 원하는만큼의 명령 단추를 가질 수 있습니다.
버튼을 클릭 할 때 코드를 실행하려면 버튼을 두 번 클릭하면됩니다. CommandButton_Click 이벤트가 열립니다. 여기에 명령 버튼을 클릭하여 실행할 코드를 작성하십시오.
완료 명령 버튼을 클릭하면 아래 코드가 실행되고 사용자 양식도 닫힙니다.
Private Sub CommandButton1_Click() Dim gender As String If OptionButton1.Value = True Then gender = "Male" ElseIf OptionButton2.Value = True Then gender = "female" Else gender = "other" End If MsgBox gender Unload UserForm1 'closes userform End Sub
네, 이것들은 VBA의 기본 사용자 폼 컨트롤입니다. 도움이 되었기를 바랍니다. 사용자 양식 컨트롤 및 사용자 양식 이벤트에 대해 의문이있는 경우 아래 주석 섹션에 적어 두십시오.
관련 기사
link : / applications-word-outlook-in-vba-getting-started-with-excel-vba-userforms [Excel VBA 사용자 양식 시작하기]
| Excel 사용자 양식은 사용자로부터 정보를 얻는 데 유용합니다. 다음은 VBA userforms`link : / user-forms-input-boxes-in-vba-change-the-valuecontent-of-several-userform-controls-using-vba-in-microsoft-excel [변경 Excel에서 VBA를 사용하여 여러 UserForm 컨트롤의 값 / 내용]`| 사용자 폼 컨트롤의 내용을 변경하려면이 간단한 VBA 스 니펫을 사용하십시오.
link : / user-forms-input-boxes-in-vba-prevent-a-userform-from-closing- when-the-user-clicks-the-x-button-using-vba-in-microsoft-excel [ Excel에서 VBA를 사용하여 사용자가 x- 버튼을 클릭 할 때 사용자 폼이 닫히지 않도록 방지]
| 사용자가 폼의 x 버튼을 클릭 할 때 사용자 폼이 닫히는 것을 방지하기 위해 UserForm_QueryClose 이벤트를 사용합니다.
인기 기사 :
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 함수 사용 방법]
| 이것은 또 다른 대시 보드 필수 기능입니다. 이를 통해 특정 조건에 대한 값을 합산 할 수 있습니다.