/ / Excel VBA Userform s více stránkami

Formát Excel VBA s více stránkami

Níže se podíváme na program v aplikaci Excel VBA, který vytvoří Userform obsahující více stránek. Tento uživatelský formulář obsahuje také obrázky.

Řízení více stránek obsahuje dvě stránky. Na stránce 1 může uživatel vyplnit své osobní údaje. Na stránce 2 může uživatel uvést, který obraz má nejvíce rádi.

Uživatelský formulář Strana 1
Uživatelský formulář Strana 2

Chcete-li vytvořit tento Userform, proveďte následující kroky.

1. Otevřete editor jazyka. Pokud aplikace Project Explorer není viditelná, klepněte na tlačítko Zobrazit, Project Explorer.

2. Klepněte na tlačítko Vložit, Formát uživatele. Pokud se panel nástrojů nezobrazí automaticky, klikněte na tlačítko Zobrazit, panel nástrojů. Vaše obrazovka by měla být nastavena níže.

Uživatelské nastavení obrazovky v aplikaci Excel VBA

3. Přidejte ovládací prvek Multipage, popisky, textové schránky (nejprve nahoře, druhý pod první), rámeček, volitelná tlačítka (nejprve vlevo, druhá napravo), seznam, ovládací prvek a příkazové tlačítko. Jakmile je tento výsledek dokončen, výsledek by měl být v souladu s prázdnou verzí Formy uživatelů zobrazené dříve. Například vytvořte ovládací prvek více stránek kliknutím na více stránek z panelu nástrojů. Dále můžete přetáhnout ovládací prvek Více stránek na Userform. Když přijedete do rámce Pohlaví, nezapomeňte nakreslit tento snímek před tím, než umístíte dvě tlačítka.

4. Můžete změnit názvy a popisy ovládacích prvků. Jména jsou používána v kódu VBA aplikace Excel. Titulky jsou ty, které se zobrazují na obrazovce. Je dobré změnit názvy ovládacích prvků, ale není to nutné, protože v tomto příkladu máme jen několik ovládacích prvků. Chcete-li změnit popis formátu Userform, více stránek, štítků, rámeček, tlačítek možností a příkazového tlačítka, klepněte na tlačítko Zobrazit, okno Vlastnosti a klepněte na každý ovládací prvek.

5. Chcete-li zobrazit Userform, umístěte příkazové tlačítko na pracovní list a přidejte následující řádek:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

Nyní vytvoříme Sub UserForm_Initialize. Pokud použijete metodu Show for Userform, bude automaticky provedena tato položka.

6. Otevřete editor jazyka.

7. V Průzkumníku projektu klepněte pravým tlačítkem na UserForm1 a potom klepněte na tlačítko Zobrazit kód.

8. Z rozevíracího seznamu vlevo zvolte položku Forma uživatele. V pravém rozevíracím seznamu vyberte příkaz Inicializovat.

9. Přidejte následující řádky kódů:

Private Sub UserForm_Initialize()

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

End Sub

Vysvětlení: vyplní se seznam na stránce 2.

Nyní jsme vytvořili první část Userform. I když to vypadá dobře, nic se nestane, když vybereme položku ze seznamu nebo když klikneme na tlačítko OK.

10. Stáhněte si obrázky (vpravo od této stránky) a přidejte je do "C: test"

11. V aplikaci Project Explorer poklepejte na UserForm1.

12. Poklepejte na pole se seznamem.

13. Přidejte následující řádky kódu:

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

Vysvětlení: tyto řádky kódu načtou obrázek v závislosti na vybrané položce v seznamu.

14. Dvakrát klikněte na tlačítko OK.

15. Přidejte následující řádky kódu:

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

Vysvětlení: nejprve aktivujeme list1. Dále určujeme emptyRow. Proměnná emptyRow je první prázdný řádek a zvyšuje se při každém přidání záznamu. Dále přeneseme informace z Userformu do konkrétních sloupců emptyRow. Nakonec uzavřeme Userform.

16. Ukončete editor jazyka Visual Basic, zadejte níže uvedené popisky do řádek 1 a otestujte Userform.

Výsledek:

Otestujte formulář User

Také si přečtěte: