엑셀 VBA 사용자 정의 폼
이 장에서는 엑셀 VBA 사용자 정의 폼을 만드는 방법을 배울 수 있습니다. 사용자 정의 폼 우리는 다음과 같은 모양을 만들려고하고있다 :
컨트롤을 추가
사용자 정의 폼에 컨트롤을 추가하려면 다음 단계를 실행합니다.
-
‘링크 / VBA 작성-A-매크로 # 비주얼 베이직 에디터 [VBA 편집기를]`. 프로젝트 탐색기가 보이지 않으면보기 프로젝트 탐색기를 클릭합니다.
삽입, 사용자 정의 폼을 클릭합니다. 도구 상자가 자동으로 나타나지 않으면,보기, 도구 상자를 클릭합니다. 화면은 다음과 같이 설정해야합니다.
아래 표에 나열된 컨트롤을 추가합니다. 이것이 완료되면, 그 결과는 앞서 도시 정의 폼의 화상과 일치한다. 예를 들어, 도구 상자에서 텍스트 상자를 클릭하여 텍스트 상자 컨트롤을 만듭니다. 다음으로, 당신은 사용자 정의 폼에 텍스트 상자를 드래그 할 수 있습니다. 당신은 자동차 프레임에 도착하면 당신이 그것에 두 개의 옵션 버튼을 배치하기 전에 먼저이 프레임을 그릴 기억한다.
-
변경 이름과 아래 표에 따라 컨트롤의 캡션. 이름은 엑셀 VBA 코드에 사용됩니다. 자막은 화면에 나타나는 것들이다. 이 컨트롤의 이름을 변경하는 것이 좋습니다. 이 코드를 읽기 쉽게 할 것이다. 이름과 컨트롤의 캡션을 변경하려면,보기, 속성 창을 클릭하고 각 컨트롤을 클릭합니다.
Control |
Name |
Caption |
Userform |
DinnerPlannerUserForm |
Dinner Planner |
Text Box |
NameTextBox |
|
Text Box |
PhoneTextBox |
|
List Box |
CityListBox |
|
Combo Box |
DinnerComboBox |
|
Check Box |
DateCheckBox1 |
June 13th |
Check Box |
DateCheckBox2 |
June 20th |
Check Box |
DateCheckBox3 |
June 27th |
Frame |
CarFrame |
Car |
Option Button |
CarOptionButton1 |
Yes |
Option Button |
CarOptionButton2 |
No |
Text Box |
MoneyTextBox |
|
Spin Button |
MoneySpinButton |
|
Command Button |
OKButton |
OK |
Command Button |
ClearButton |
Clear |
Command Button |
CancelButton |
Cancel |
7 Labels |
No need to change |
Name:, Phone Number:, etc. |
참고 : 콤보 상자는 사용자가 그 / 그녀의 자신의 선택의 항목 또는 채우기를 선택할 수있는 곳에서 드롭 다운 목록입니다. 옵션 버튼 중 하나를 선택할 수 있습니다.
사용자 정의 폼을 표시
워크 시트에 / VBA 만들-A-매크로 # 명령 버튼 [명령 단추]`다음 코드 줄을 추가합니다 : 사용자 정의 폼을 표시하려면 ‘링크를 배치
Private Sub CommandButton1_Click() DinnerPlannerUserForm.Show End Sub
우리는 지금 하위 UserForm_Initialize을 만들 것입니다. 사용자 정의 폼에 대한 표시 방법을 사용하면,이 서브가 자동으로 실행됩니다.
-
‘링크 / VBA 작성-A-매크로 # 비주얼 베이직 에디터 [VBA 편집기를]`.
프로젝트 탐색기 2. 마우스 오른쪽 DinnerPlannerUserForm 클릭 한 다음 코드보기를 클릭하십시오.
왼쪽 드롭 다운 목록에서 사용자 정의 폼을 선택합니다. 오른쪽 드롭 다운 목록에서 초기화를 선택합니다.
다음 코드 줄을 추가하십시오 :
Private Sub UserForm_Initialize() 'Empty NameTextBox NameTextBox.Value = "" 'Empty PhoneTextBox PhoneTextBox.Value = "" 'Empty CityListBox CityListBox.Clear 'Fill CityListBox With CityListBox .AddItem "San Francisco" .AddItem "Oakland" .AddItem "Richmond" End With 'Empty DinnerComboBox DinnerComboBox.Clear 'Fill DinnerComboBox With DinnerComboBox .AddItem "Italian" .AddItem "Chinese" .AddItem "Frites and Meat" End With 'Uncheck DataCheckBoxes DateCheckBox1.Value = False DateCheckBox2.Value = False DateCheckBox3.Value = False 'Set no car as default CarOptionButton2.Value = True 'Empty MoneyTextBox MoneyTextBox.Value = "" 'Set Focus on NameTextBox NameTextBox.SetFocus End Sub
설명 : 텍스트 상자 확인란 등, 선택 취소, 목록 상자와 콤보 상자가 가득, 비워
지정 매크로
우리는 지금 사용자 정의 폼의 첫 번째 부분을 만들었습니다. 이미 깔끔한 보이지만 우리는 사용자 정의 폼에 명령 단추를 클릭 할 때, 아무것도 아직 일어나지 않습니다.
-
‘링크 / VBA 작성-A-매크로 # 비주얼 베이직 에디터 [VBA 편집기를]`.
프로젝트 탐색기 2. DinnerPlannerUserForm을 두 번 클릭합니다.
-
더블은 돈 스핀 버튼을 클릭합니다.
다음 코드 줄을 추가하십시오 :
Private Sub MoneySpinButton_Change() MoneyTextBox.Text = MoneySpinButton.Value End Sub
설명 : 당신이 스핀 버튼을 사용할 때이 코드 라인은 텍스트 상자를 업데이트합니다.
-
더블 OK (확인) 버튼을 클릭합니다.
다음 코드 줄을 추가 6.
Private Sub OKButton_Click() Dim emptyRow As Long 'Make Sheet1 active Sheet1.Activate 'Determine emptyRow emptyRow = WorksheetFunction.CountA(Range("A:A")) + 1 'Transfer information Cells(emptyRow, 1).Value = NameTextBox.Value Cells(emptyRow, 2).Value = PhoneTextBox.Value Cells(emptyRow, 3).Value = CityListBox.Value Cells(emptyRow, 4).Value = DinnerComboBox.Value If DateCheckBox1.Value = True Then Cells(emptyRow, 5).Value = DateCheckBox1.Caption If DateCheckBox2.Value = True Then Cells(emptyRow, 5).Value = Cells(emptyRow, 5).Value & " " & DateCheckBox2.Caption If DateCheckBox3.Value = True Then Cells(emptyRow, 5).Value = Cells(emptyRow, 5).Value & " " & DateCheckBox3.Caption If CarOptionButton1.Value = True Then Cells(emptyRow, 6).Value = "Yes" Else Cells(emptyRow, 6).Value = "No" End If Cells(emptyRow, 7).Value = MoneyTextBox.Value End Sub
설명 : 첫째, 우리는 시트 1을 활성화합니다. 다음으로, 우리는 emptyRow을 결정합니다. 가변 emptyRow 처음 빈의 행 및 레코드를 추가 할 때마다 증가한다. 마지막으로, 우리는 emptyRow의 특정 컬럼에 정의 폼의 정보를 전송합니다.
-
더블 지우기 버튼을 클릭합니다.
다음 코드 줄을 추가 8. :
Private Sub ClearButton_Click() Call UserForm_Initialize End Sub
설명 :이 코드 라인을 사용하면 삭제 버튼을 클릭 서브 UserForm_Initialize 호출합니다.
취소 버튼 9. 더블 클릭합니다.
-
다음 코드 줄을 추가
Private Sub CancelButton_Click() Unload Me End Sub
설명 : 취소 버튼을 클릭하면이 코드 라인은 사용자 정의 폼을 닫습니다.
시험 정의 폼
Visual Basic 편집기를 종료 행 1로 아래의 레이블을 입력하고 사용자 정의 폼을 테스트합니다.
결과 :