엑셀 VBA 사용자 정의 폼 시작하기
이 기사에서는 VBA 사용자 양식의 기본 사항을 배웁니다. Excel에서 양식을 만드는 방법, VBA 도구 상자를 사용하는 방법, 사용자 입력을 처리하는 방법 및 마지막으로 사용자 입력을 저장하는 방법을 설명합니다. 하나의 예제와 단계별 가이드를 사용하여 이러한 주제를 살펴 보겠습니다. 이것을 읽고 있다면 Excel VBA의 기본 사항을 알고 있다고 가정합니다.
더 이상 지체하지 않고 시작하겠습니다.
Excel 및 Store Record에 대한 투자 양식 작성
사용자 폼 디자인부터 시작하겠습니다. 이 사용자 양식에는 이름에 대한 텍스트 상자 하나, 나이에 대한 텍스트 상자, 투자 금액에 대한 텍스트 상자 및 성별에 대한 한 쌍의 라디오 버튼이 있습니다. 시작하겠습니다.
사용자 양식 디자인
Alt + F11 바로 가기를 사용하여 Excel에서 Visual Basic 편집기를 엽니 다. 프로젝트 상자에서 VBAProject (yourfile)를 마우스 오른쪽 버튼으로 클릭합니다. 삽입 옵션에서 사용자 양식을 선택하십시오. 즉시 새 폴더가 생성되고 사용자 양식이 발견됩니다. 이 프로젝트의 모든 사용자 양식이이 폴더에 추가됩니다.
속성 상자 *에서 양식 이름을 InvestmentForm으로 변경합니다.
양식에 요소 추가 : 위 이미지에서 이미 요소 (레이블, 텍스트 상자, 명령 단추)를 추가했습니다. 그러나 새 사용자 양식은 완전히 비어 있으므로 도구 상자를 사용하여 양식에 요소를 추가해야합니다. 도구 상자가 보이지 않으면보기 * 탭에서 가져 오십시오.
이름 요소 * : 텍스트 상자, 레이블, 버튼 등은 모두 요소입니다.
그리고 VBA 코드에서 사용하려면 이름을 지정해야합니다. 속성 창을 사용하여 이름을 변경합니다. 요소를 선택하십시오. 여기에서 이름에 대한 텍스트 상자를 선택합니다. 속성 창으로 이동하여 이름을“NameBox *”로 변경합니다. 사용할 각 요소에 대해 동일한 작업을 수행하십시오. (_ 레이블을 클릭 할 수있게하려는 경우가 아니면 레이블 이름을 지정할 필요가 없습니다 ._)
아래 표와 같이 요소 이름을 변경했으며 이러한 이름을 사용하여 참조합니다. 다른 이름을 가질 수 있습니다. 이 이름을 귀하의 이름으로 바꾸십시오. 코드에 사용되는 VBA 이름 (코드 이름)입니다. 양식에 반영되지 않습니다.
레이블과 버튼에서 볼 수있는 텍스트는 “캡션”입니다. 원하는 경우 요소의 이름과 캡션이 동일 할 수 있습니다.
Element |
Rename |
Name Text Box |
NameBox |
Age Text Box |
AgeBox |
Male Option Button |
MaleOption |
Female Option Button |
FemaleOption |
Investment Text Box |
InvestBox |
Submit Command Button |
SubmitButton |
Cancel Command Button |
CancelButton |
사용자에게 사용자 양식 표시 : 이제 양식이 준비되었으므로 사용자에게 표시하겠습니다. 하지만 잠깐, 어떻게해야하나요. 워크 시트에는 사용자 양식을 호출하는 옵션이 없습니다. 실제로 사용자 양식에는 트리거가 필요합니다. 단독으로는 표시 할 수 없습니다. 명령 버튼, 서브 루틴 또는 이벤트를 사용하여 화면에 폼이 팝업되도록 할 수 있습니다.
여기서는 명령 버튼을 사용하여 사용자 양식을 트리거합니다.
-
워크 시트에서 개발자 탭으로 이동 하시겠습니까? 끼워 넣다? 버튼 (양식 컨트롤).
열린 양식의 이름을 바꿉니다.
-
그것을 마우스 오른쪽 버튼으로 클릭하십시오. 매크로 할당을 클릭 한 다음 새로 만들기를 클릭합니다.
서브가 즉시 생성됩니다. 이제이 줄을 그 하위에 추가하십시오.
Sub Open_Form() 'Opening form InvestmentForm.Show End Sub
완료되었습니다. 해당 시트로 돌아가서 버튼을 클릭하십시오. 사용자 양식이 나타납니다.
VBA 사용자 양식을 사용하여 시트 채우기 : 명령 버튼 (양식 열기)을 클릭하면 양식이 나타납니다. 이제 양식을 채울 수 있습니다. 하지만 제출 버튼을 클릭하면이 시트에 데이터가 입력되어야하지만 아무 일도 일어나지 않습니다. 이에 대한 vba 명령어를 작성하지 않았기 때문입니다. 사용자 양식 데이터를 시트에 저장해야합니다. VBA로 돌아가서 제출 버튼을 두 번 클릭하십시오. 새 서브가 자동으로 생성됩니다. 이 하위는 양식에 포함되어 있으며 어떤 모듈에서도 찾을 수 없습니다. 이것은 양식의 각 요소에 대해 동일합니다.
-
해당 서브 에이 vba 코드를 작성하십시오.
Private Sub SubmitButton_Click() Sheet1.Activate 'get first empty row on sheet (read about it here) lstrow = Cells(Rows.Count, 1).End(xlUp).Row Set firstEmptyRow = Range("A" & lstrow + 1) 'initialize each cell with data firstEmptyRow.Offset(0, 0).Value = nameBox.Value 'first cell firstEmptyRow.Offset(0, 1).Value = AgeBox.Value 'first cell to the right firstEmptyRow.Offset(0, 3).Value = InvestBox.Value 'third cell to the right 'checking radio button If MaleOption.Value = True Then firstEmptyRow.Offset(0, 2).Value = "Male" 'second cell to the right Else firstEmptyRow.Offset(0, 2).Value = "Female" 'second cell to the right End If 'Closing form Unload Me End Sub
위의 VBA 코드 스 니펫은 제출 버튼을 클릭하면 실행됩니다. 시트에서 첫 번째 빈 행을 찾아서 양식에 제공된 값으로 채 웁니다. 마지막으로 “Unload Me”명령을 사용하여 양식을 닫습니다.
취소 명령을 사용하여 양식을 닫습니다. 지금은 취소 버튼이 쓸모가 없습니다. 아무것도하지 않습니다. 입력을 중단하고 싶은 경우 취소 버튼을 사용할 수 있습니다. 이 경우 : * VBA 편집기에서 취소 명령 버튼을 두 번 클릭합니다. 새로운 서브가 생성됩니다. 이 코드 줄을 작성하여 사용자 양식을 닫으십시오.
Private Sub CancelButton_Click() 'Closing form Unload Me End Sub
마지막으로 양식 코드는 다음과 같습니다.
그리고 그게 다야. 이것은 엑셀 vba 사용자 양식을 사용하여 사용자로부터 입력을받는 방법입니다. 이 기사에서는 사용자가 익숙해 질 수 있도록 사용자 양식의 기본 사용법을 살펴 보았습니다. 기본 vba에 대한 지식이 있으면 간단합니다.
향후 기사에서는 Excel에서 vba 사용자 양식의 고급 기능을 살펴볼 것입니다. 더 많은 작업을 수행하기 위해 Excel에서 사용자 양식을 만들 것입니다.
vba 사용자 양식에 사용할 수있는 다양한 도구와 요소를 살펴 보겠습니다.
그때까지 이것을 연습하십시오. 원하는 경우 참조 용으로이 파일을 다운로드 할 수 있습니다.
네, 이것은 작고 간단한 사용자 양식 튜토리얼이었습니다. 수완이 되었기를 바랍니다. 이것에 대해 의문이 있으시면 알려주십시오. 아래 댓글 섹션에 알려주십시오.
관련 기사
link : / user-forms-input-boxes-in-vba-change-the-valuecontent-of-several-userform-controls-using-vba-in-microsoft-excel [여러 UserForm 컨트롤의 값 / 내용 변경 Excel에서 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- 버튼을 클릭 할 때 사용자 폼이 닫히지 않도록 방지]
link : / user-forms-input-boxes-in-vba-return-a-userdefined-cell-reference-from-a-dialog-using-vba-in-microsoft-excel [RefEdit를 사용하여 사용자가 참조한 셀 반환 Excel에서 사용자 양식 제어]
인기 기사 :
link : / formulas-and-functions-introduction-of-vlookup-function [Excel의 VLOOKUP 함수]
link : / tips-countif-in-microsoft-excel [Excel 2016의 COUNTIF]
link : / excel-formula-and-function-excel-sumif-function [Excel에서 SUMIF 함수 사용 방법]