Di seguito vedremo un programma in Excel VBA che crea un form che contiene più pagine. Questo form contiene anche immagini.

Il controllo multipagina contiene due pagine. A pagina 1, l’utente può riempire nella sua / sue informazioni personali. A pagina 2, l’utente può indicare che la pittura che lui / lei piace di più.

Userform Page 1

Userform Page 2

Per creare questo form, eseguire i seguenti passaggi.

  1. Aprire il Visual Basic Editor. Se il progetto Explorer non è visibile, fare clic su Visualizza, progetti.

  2. Fare clic su Inserisci, Userform. Se la Casella degli strumenti non viene visualizzata automaticamente, fare clic su Visualizza, Strumenti. Lo schermo dovrebbe essere impostato come di seguito.

Userform Screen Setup in Excel VBA

  1. Aggiungere il controllo multipagina, etichette, caselle di testo (prima in alto, la seconda sotto la prima), telaio, pulsanti di opzione (primo a sinistra, il secondo a destra), casella di riepilogo, controllo Image e pulsante di comando. Una volta che questo è stato completato, il risultato dovrebbe essere coerente con la versione vuota del Userform mostrato in precedenza. Ad esempio, creare un controllo multipagina cliccando sul multipagina dalla Casella degli strumenti. Successivamente, è possibile trascinare un controllo multipagina in UserForm. Quando si arriva al telaio di genere, ricordatevi di disegnare questo fotogramma prima prima di inserire i due pulsanti di opzione a esso.

  2. È possibile modificare i nomi e le didascalie dei controlli. I nomi sono utilizzati nel codice VBA di Excel. Le didascalie sono quelli che appaiono sullo schermo. È buona norma cambiare i nomi dei controlli, ma non è necessario qui perché abbiamo solo un paio di controlli in questo esempio. Per modificare la didascalia del pulsante schede form, multipagina, etichette, cornice, pulsanti di opzione e di comando, fare clic su Visualizza, Finestra Proprietà e fare clic su ogni controllo.

  3. Per mostrare il form, inserire un pulsante di comando nel foglio di lavoro e aggiungere la riga di codice seguente:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

Ora stiamo andando a creare l’UserForm_Initialize Sub. Quando si utilizza il metodo Show per il form, verrà automaticamente eseguito questo sub.

  1. Aprire il Visual Basic Editor.

  2. In Esplora progetti, fare clic destro su UserForm1 e quindi fare clic su Visualizza codice.

  3. Scegliere Userform dall’elenco a discesa sinistra. Scegli inizializzazione dall’elenco a discesa a destra.

  4. Aggiungere le seguenti righe di codice:

Private Sub UserForm_Initialize()

With ListBox1

.AddItem "Mountains"

.AddItem "Sunset"

.AddItem "Beach"

.AddItem "Winter"

End With

End Sub

Spiegazione: la casella di riepilogo a pagina 2 sarà riempito.

Abbiamo creato la prima parte del form utente. Anche se sembra già ordinato, nulla accadrà ancora quando si seleziona un elemento dalla casella di riepilogo o quando si clicca sul pulsante OK.

  1. Scarica le immagini (parte destra di questa pagina) e aggiungerli a “C: \ test \”

  2. In Esplora progetti, fare doppio clic su UserForm1.

  3. Fare doppio clic sulla casella di riepilogo.

  4. Aggiungere le seguenti righe di codice:

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

Spiegazione: queste righe di codice caricare un’immagine a seconda della voce selezionata nella casella di riepilogo.

  1. Fare doppio clic sul pulsante OK.

  2. Aggiungere le seguenti righe di codice:

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

Spiegazione: prima, attiviamo Sheet1. Successivamente, determiniamo emptyRow. L’emptyRow variabile è la prima riga vuota e aumenta ogni volta che viene aggiunto un record. Successivamente, abbiamo trasferire le informazioni dal Userform alle colonne specifiche di emptyRow. Infine, chiudere il form.

  1. Uscire Visual Basic Editor, inserire le etichette mostrate di seguito in riga 1 e testare l’Userform.

Risultato:

Test the Userform