우리는 여러 페이지를 포함하는 사용자 정의 폼을 만들어 엑셀 VBA에서 프로그램을보고 아래. 이 정의 폼도 이미지가 포함되어 있습니다.

여러 페이지 제어는 두 페이지가 포함되어 있습니다. 1 페이지에서, 사용자는 그 / 그녀의 개인 정보를 입력 할 수 있습니다. 2 페이지에서, 사용자는 그 그림 / 그녀가 가장 좋아하는 나타낼 수 있습니다.

Userform Page 1

Userform Page 2

이 정의 폼을 만들려면 다음 단계를 실행합니다.

  1. Visual Basic 편집기. 프로젝트 탐색기가 보이지 않으면보기 프로젝트 탐색기를 클릭합니다.

삽입, 사용자 정의 폼을 클릭합니다. 도구 상자가 자동으로 나타나지 않으면,보기, 도구 상자를 클릭합니다. 화면은 다음과 같이 설정해야합니다.

Userform Screen Setup in Excel VBA

다면 제어, 레이블, 텍스트 상자 (먼저 상단의 첫 번째 아래의 두 번째), 프레임, 옵션 버튼 (첫번째 왼쪽에서 오른쪽에서 두 번째), 목록 상자, 이미지 제어 및 명령 단추를 추가합니다. 이이 완료되면, 그 결과는 앞에 나온 정의 폼의 빈 버전과 일치해야합니다. 예를 들어, 도구 상자에서 여러 페이지를 클릭하여 여러 페이지 컨트롤을 만듭니다. 다음으로, 당신은 사용자 정의 폼에 여러 페이지 컨트롤을 드래그 할 수 있습니다. 당신은 성별 프레임에 도착하면 당신이 그것에 두 개의 옵션 버튼을 배치하기 전에 먼저이 프레임을 그릴 기억한다.

  1. 이름과 컨트롤의 캡션을 변경할 수 있습니다. 이름은 엑셀 VBA 코드에 사용됩니다. 자막은 화면에 나타나는 것들이다. 이 컨트롤의 이름을 변경하는 것이 좋습니다,하지만 우리는이 예제에서 몇 가지 컨트롤을 가지고 있기 때문에 여기에 필요하지 않습니다. 사용자 정의 폼, 여러 페이지 탭, 라벨, 프레임, 옵션 단추 및 명령 단추의 캡션을 변경하려면,보기, 속성 창을 클릭하고 각 컨트롤을 클릭합니다.

  2. 사용자 정의 폼을 보여 워크 시트에 명령 단추를 배치하고 다음 코드 줄을 추가하려면 :

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

우리는 지금 하위 UserForm_Initialize을 만들 것입니다. 사용자 정의 폼에 대한 표시 방법을 사용하면,이 서브가 자동으로 실행됩니다.

  1. Visual Basic 편집기.

프로젝트 탐색기 7. 오른쪽 UserForm1을 클릭 한 다음 코드보기를 클릭하십시오.

왼쪽 드롭 다운 목록에서 사용자 정의 폼을 선택 8.. 오른쪽 드롭 다운 목록에서 초기화를 선택합니다.

다음 코드 줄을 추가 9. :

Private Sub UserForm_Initialize()

With ListBox1

.AddItem "Mountains"

.AddItem "Sunset"

.AddItem "Beach"

.AddItem "Winter"

End With

End Sub

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

우리는 지금 사용자 정의 폼의 첫 번째 부분을 만들었습니다. 이미 깔끔한 보이지만, 우리가 목록 상자에서 항목을 선택하면 아무것도 아직 일어나지 않습니다 또는 우리는 OK 버튼을 클릭합니다.

(10) 다운로드 이미지 (이 페이지의 오른쪽)와에 추가 “C : \ 테스트 \”

(11)에서 프로젝트 탐색기, UserForm1을 두 번 클릭합니다.

  1. 두 목록 상자를 클릭합니다.

  2. 다음 코드 줄을 추가합니다

Private Sub ListBox1_Click()

If ListBox1.ListIndex = 0 Then

Image1.Picture = LoadPicture("C:\test\Mountains.jpg")

End If

If ListBox1.ListIndex = 1 Then

Image1.Picture = LoadPicture("C:\test\Sunset.jpg")

End If

If ListBox1.ListIndex = 2 Then

Image1.Picture = LoadPicture("C:\test\Beach.jpg")

End If

If ListBox1.ListIndex = 3 Then

Image1.Picture = LoadPicture("C:\test\Winter.jpg")

End If

End Sub

설명 :이 코드 라인 목록 상자에서 선택한 항목에 따라 사진을로드합니다.

  1. 두 번 확인 버튼을 클릭합니다.

  2. 다음 코드 줄을 추가합니다

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

설명 : 첫째, 우리는 시트 1을 활성화합니다. 다음으로, 우리는 emptyRow을 결정합니다. 가변 emptyRow 처음 빈의 행 및 레코드를 추가 할 때마다 증가한다. 다음으로, 우리는 emptyRow의 특정 컬럼에 정의 폼의 정보를 전송합니다. 마지막으로, 우리는 사용자 정의 폼을 닫습니다.

  1. 종료 VBA 편집기는, 1 행 아래에 나타낸 라벨을 입력하고 정의 폼 테스트.

결과 :

Test the Userform