/ / Excel VBA 여러 페이지가있는 Userform

여러 페이지가있는 Excel VBA 사용자 폼

아래에서는 여러 페이지가 포함 된 Userform을 만드는 Excel VBA의 프로그램을 살펴 보겠습니다. 이 사용자 양식은 또한 이미지를 포함합니다.

다중 페이지 컨트롤에는 두 개의 페이지가 있습니다. 1 페이지에서 사용자는 개인 정보를 입력 할 수 있습니다. 2 페이지에서 사용자는 자신이 가장 좋아하는 그림을 나타낼 수 있습니다.

사용자 정의 페이지 1
사용자 정의 페이지 2

이 사용자 정의 폼을 만들려면 다음 단계를 수행하십시오.

1. Visual Basic Editor를 엽니 다. 프로젝트 탐색기가 보이지 않으면보기, 프로젝트 탐색기를 클릭하십시오.

2. Insert, Userform을 클릭하십시오. 도구 상자가 자동으로 나타나지 않으면보기, 도구 상자를 클릭하십시오. 화면은 다음과 같이 설정해야합니다.

Excel VBA의 사용자 폼 화면 설정

삼. 여러 페이지 컨트롤, 레이블, 텍스트 상자 (첫 번째는 위쪽, 두 번째는 첫 번째), 프레임, 옵션 단추 (첫 번째는 왼쪽, 두 번째는 오른쪽), 목록 상자, 이미지 컨트롤 및 명령 단추를 추가하십시오. 이 작업이 완료되면 이전에 표시된 Userform의 빈 버전과 일치해야합니다. 예를 들어 도구 상자에서 여러 페이지를 클릭하여 여러 페이지 컨트롤을 만듭니다. 다음으로, Userform에 대한 Multipage 컨트롤을 드래그 할 수 있습니다. Gender 프레임에 도착하면 두 개의 옵션 버튼을 배치하기 전에 먼저이 프레임을 그려야합니다.

4. 컨트롤의 이름과 캡션을 변경할 수 있습니다. 이름은 Excel VBA 코드에서 사용됩니다. 자막은 화면에 나타나는 자막입니다. 컨트롤의 이름을 변경하는 것이 좋지만이 예제에는 컨트롤이 몇 개 있기 때문에 여기서는 필요하지 않습니다. Userform, 여러 페이지 탭, 레이블, 프레임, 옵션 단추 및 명령 단추의 캡션을 변경하려면보기, 속성 창을 클릭하고 각 컨트롤을 클릭하십시오.

5. 사용자 정의 폼을 표시하려면 워크 시트에 명령 단추를 놓고 다음 코드 줄을 추가하십시오.

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

이제 Sub UserForm_Initialize를 만들겠습니다. 사용자 정의 폼에 Show 메서드를 사용하면이 하위가 자동으로 실행됩니다.

6. Visual Basic Editor를 엽니 다.

7. 프로젝트 탐색기에서 UserForm1을 마우스 오른쪽 단추로 누른 다음 코드보기를 누릅니다.

8. 왼쪽 드롭 다운 목록에서 사용자 양식을 선택하십시오. 오른쪽 드롭 다운 목록에서 초기화를 선택하십시오.

9. 다음 코드 행을 추가하십시오.

Private Sub UserForm_Initialize()

With ListBox1
    .AddItem "Mountains"
    .AddItem "Sunset"
    .AddItem "Beach"
    .AddItem "Winter"
End With

End Sub

설명 : 2 페이지의 목록 상자가 채워집니다.

우리는 이제 Userform의 첫 번째 부분을 만들었습니다. 이미 깔끔하게 보였지만 목록 상자에서 항목을 선택하거나 [확인] 단추를 클릭 할 때 아무 것도 나타나지 않습니다.

10. 이미지를 다운로드하고 (이 페이지의 오른쪽) "C : test"에 추가하십시오.

11. 프로젝트 탐색기에서 UserForm1을 두 번 누릅니다.

12. 목록 상자를 두 번 클릭하십시오.

13. 다음 코드 행을 추가하십시오.

Private Sub ListBox1_Click()

If ListBox1.ListIndex = 0 Then
    Image1.Picture = LoadPicture("C:testMountains.jpg")
End If

If ListBox1.ListIndex = 1 Then
    Image1.Picture = LoadPicture("C:testSunset.jpg")
End If

If ListBox1.ListIndex = 2 Then
    Image1.Picture = LoadPicture("C:testBeach.jpg")
End If

If ListBox1.ListIndex = 3 Then
    Image1.Picture = LoadPicture("C:testWinter.jpg")
End If

End Sub

설명 :이 코드 행은 목록 상자의 선택된 항목에 따라 그림을로드합니다.

14. 확인 버튼을 두 번 클릭하십시오.

15. 다음 코드 행을 추가하십시오.

Private Sub CommandButton1_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 = TextBox1.Value
Cells(emptyRow, 2).Value = TextBox2.Value

If OptionButton1.Value = True Then
    Cells(emptyRow, 3).Value = "Male"
Else
    Cells(emptyRow, 3).Value = "Female"
End If

Cells(emptyRow, 4).Value = ListBox1.Value

"Close Userform
Unload Me

End Sub

설명 : 먼저 Sheet1을 활성화합니다. 다음으로 emptyRow를 결정합니다. 변수 emptyRow는 첫 번째 빈 행이며 레코드가 추가 될 때마다 증가합니다. 다음으로, 사용자 정의 폼의 정보를 emptyRow의 특정 컬럼으로 전송합니다. 마지막으로 Userform을 닫습니다.

16. Visual Basic Editor를 종료하고 아래 표시된 레이블을 1 행에 입력하고 Userform을 테스트합니다.

결과:

사용자 정의 폼 테스트

또한 읽으십시오 :