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 : 프레임

이 모든 컨트롤을 살펴 보겠습니다.

레이블 :

레이블은 단순히 텍스트 레이블을 표시하는 데 사용됩니다. 입력 영역, 경고, 방향 등의 레이블과 같습니다.

image

사용자 폼에 레이블을 추가하려면 도구 상자에서 레이블 옵션 (아이콘)을 선택하기 만하면됩니다. 커서가 더하기 기호로 바뀝니다. 레이블을 넣을 영역으로 끕니다.

텍스트 상자 :

텍스트 상자는 사용자의 기본 개방형 입력 옵션입니다. 사용자는 원하는 입력을 간단히 입력 할 수 있습니다. 기본 시나리오는 이름 입력입니다.

image

마우스를 텍스트 상자 위로 가져갈 때 일부 메시지를 표시하려면 속성 창의 ControlTipText에 작성하십시오.

image

ComboBox :

콤 박스는 클릭시 항목 목록을 표시하는 데 사용됩니다. 사용자는 목록에서 표시되는 항목을 쉽게 선택하거나 직접 입력 할 수 있습니다.

사용자가 선택할 수있는 선택적 목록이있는 경우 Excel VBA에서 ComboBox를 사용합니다. 사용자는 목록에서 선택하거나 답변을 수동으로 입력 할 수 있습니다.

image

도구 상자에서 콤보 상자를 선택하고 양식을 끕니다. 양식에 즉시 콤보 상자가 삽입됩니다. combox의 기본 이름은 Combobox1, 2, 3 등입니다. 속성 상자에서 변경할 수 있습니다.

image

ComboBox에 항목을 삽입하는 방법?

이제 양식에 콤보 상자를 추가했습니다. 그러나 userform을로드하면 콤보 상자에 아무것도 표시되지 않습니다. 아직 콤보 박스에 항목을 추가하지 않았기 때문입니다.

이 예에서는 사용자 양식이 초기화 (로드) 될 때 콤보 상자에 항목을 추가하고 싶습니다. 그래서 우리는 “초기화”조차도 사용자 폼을 사용할 것입니다.

전체 사용자 양식을 선택하려면 사용자 양식 (구성 요소가 아님)을 마우스 오른쪽 단추로 클릭하십시오. 보기 코드를 선택하십시오.

image

From`link : / events-in-vba-the-events-in-excel-vba [events]`

, 초기화를 선택합니다.

image

이제 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 () 이벤트에 항목을 추가하고 있으므로 사용자 양식이로드 될 때 모든 항목이 콤보 상자에 추가됩니다.

image

ComboBox에서 선택한 항목 검색

콤보 박스에서 선택한 항목을 사용하려면 ComboBox의 Value 속성을 사용하면됩니다.

Private Sub CommandButton1_Click()

MsgBox ComboBox1.Value

End Sub

여기에서는 사용자가 명령 버튼을 클릭 할 때 선택한 값을 보여줍니다 (아래의 명령 버튼 클릭 이벤트가 표시됩니다).

image

목록 상자

ListBox는 사용자가 정의 된 목록에서 선택하기를 원할 때 사용됩니다.

ComboBox와 비슷하게 들리나요? 예, 목록 상자는 사용자가 목록 상자에 답을 입력 할 수 없다는 점을 제외하면 ComboBox와 매우 유사합니다.

사용 가능한 옵션에서만 선택해야합니다.

양식에 목록 상자를 삽입하려면 도구 상자에서 목록 상자를 선택하고 양식 영역에 드롭합니다.

목록 상자의 기본 이름은 유 전적으로 listbox1, 2, 3 등입니다.

속성 상자에서 변경할 수 있습니다.

image

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

위의 코드는 양식을로드하자마자 목록 상자에 월 이름을 추가합니다.

image

ListBox에서 선택한 항목 검색

사용자가 ListBox에서 선택한 항목을 검색하려면 목록 상자 개체의 Value 속성을 사용합니다.

여기에서 사용자가 선택한 월을 콤보 상자에 제공된 입력에 추가합니다.

Private Sub CommandButton1_Click()

MsgBox ComboBox1.Value & "-" & ListBox1.Value

End Sub

image

명령 버튼을 누르면 선택한 항목이 msgbox에 표시됩니다.

image

CheckBox VBA 컨트롤

CheckBox는 True 또는 False로 설정할 수있는 이진 컨트롤입니다.

여러 확인란을 사용할 수 있으며 한 번에 둘 이상의 확인란을 선택할 수 있습니다. 이것은 기본적으로 사용자가 하나 이상의 옵션을 선택할 수 있어야 할 때 사용됩니다. 객관식 질문처럼.

사용자 양식에 확인란을 추가하려면 도구 상자에서 확인란을 선택하고 VBA 사용자 양식 영역으로 드래그하면됩니다.

image

사용자 폼에 체크 박스를 추가하면 체크 박스의 기본 이름은 체크 박스 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

image

사용자가 사용자 양식에서 하나의 옵션 만 선택할 수 있도록하려면 라디오 버튼을 사용하십시오.

OptionButton VBA 컨트롤

라디오 / 옵션 버튼은 사용자가 사용 가능한 옵션에서 하나의 옵션 만 선택하도록 할 때 VBA 사용자 양식에서 사용됩니다. 양식에서 성별, 선호하는 언어, 연령대 등을 묻는 경우와 같습니다.

라디오 버튼은 도구에서 선택하고 양식 영역에서 끌어서 사용자 양식에 쉽게 추가 할 수 있습니다. 여러 라디오 버튼에 라디오 버튼을 여러 번 드래그 앤 드롭합니다.

image

라디오 / 옵션 버튼을 선택하는 방법은 무엇입니까?

라디오 버튼은 바이너리입니다. 값은 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

image

위의 예에서는 사용자 양식에서 하나의 옵션 버튼 만 선택할 수 있습니다. 그러나 여러 그룹의 옵션 버튼을 원한다면 어떻게 될까요? 이 경우 프레임을 사용합니다. 그리고 그것은 우리를 …​

VBA 사용자 양식의 프레임

프레임은 확인란 및 옵션 버튼과 같은 사용자 양식 개체를 그룹화하는 데 사용됩니다.

프레임을 사용하려면 먼저 해당 프레임을 양식 영역에 끌어다 놓은 다음 해당 프레임에 다른 개체를 놓습니다.

image

속성 상자의 캡션에서 프레임 이름을 변경할 수 있습니다.

image

모든 이벤트는 다른 사용자 양식 객체로도 프레임에 사용할 수 있습니다. 그러나 바람직하게는 개체를 그룹화하는 데 사용합니다. 프레임에 onclick 이벤트를 설정하여 클릭 할 때 그 안의 객체에 대한 몇 가지 기본 정보를로드 할 수 있습니다.

VBA 사용자 양식의 토글 버튼

토글 버튼은 켜기 및 끄기로 설정할 수있는 바이너리 개체이기도합니다. 토글 버튼을 사용하여 항목을 켜고 끌 수 있습니다.

사용자 양식에 토글 버튼을 추가하려면 도구에서 선택하고 양식 영역으로 드래그하면됩니다.

image

아래 코드는 토글 버튼의 ​​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 코드를 실행하는 데 사용하는 버튼입니다.

위의 예에서는 명령 단추를 사용하여 양식을 제출했습니다. 사용자 양식에 원하는만큼의 명령 단추를 가질 수 있습니다.

image

버튼을 클릭 할 때 코드를 실행하려면 버튼을 두 번 클릭하면됩니다. CommandButton_Click 이벤트가 열립니다. 여기에 명령 버튼을 클릭하여 실행할 코드를 작성하십시오.

image

완료 명령 버튼을 클릭하면 아래 코드가 실행되고 사용자 양식도 닫힙니다.

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 함수 사용 방법]| 이것은 또 다른 대시 보드 필수 기능입니다. 이를 통해 특정 조건에 대한 값을 합산 할 수 있습니다.