/ / Excel VBA Monivärinen Combo Box

Excel VBA: n monikulmainen yhdistelmälaatikko

Alla tarkastelemme ohjelmaa Excel VBA joka luo käyttäjätunnuksen, joka sisältää a monivärinen yhdistelmälaatikko.

Käyttäjäformaatti, jonka aiomme luoda, näyttää seuraavaa:

Multicolumn Combo Box Excel VBA: ssa

Tee tämä Käyttäjäluettelo seuraavasti.

1. Avaa Visual Basic -editori. Jos Project Explorer ei ole näkyvissä, valitse View, Project Explorer.

2. Napsauta Insert, Userform. Jos työkalupakki ei tule näkyviin automaattisesti, valitse Näytä, työkalupakki. Näyttösi on määritettävä alla.

Userform-näytön asetukset Excel VBA: ssa

3. Lisää etiketti, yhdistelmäruutu ja komentopainikkeet. Kun tämä on saatu päätökseen, tuloksen on oltava johdonmukainen aikaisemmin esitetyn käyttäjätiedon kuvan kanssa. Luo esimerkiksi yhdistelmälaatikon ohjaus klikkaamalla Toolboxissa olevaa ComboBoxia. Seuraavaksi voit vetää yhdistelmäruudun Userform-muodossa.

4. Voit muuttaa ohjaimien nimeä ja kuvatekstejä. Nimet käytetään Excel VBA -koodissa. Kuvatekstit ovat niitä, jotka näkyvät näytölläsi. On hyvä käytäntö muuttaa ohjaimien nimet, mutta se ei ole tarpeen tässä, koska tässä esimerkissä on vain muutama valvonta. Jos haluat vaihtaa käyttö-, etiketti- ja komento-painikkeiden otsikon, valitse Näytä, Ominaisuudet-ikkuna ja napsauta jokaista ohjausta.

5. Kun haluat näyttää Userform, aseta komentokehote laskentatauluun ja lisää seuraava koodirivi:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

Aiomme nyt luoda Sub UserForm_Initialize. Kun käytät User-muodon Show-menetelmää, tämä osa suoritetaan automaattisesti.

6. Avaa Visual Basic -editori.

7. Napsauta Project Explorer -ohjelmaa hiiren kakkospainikkeella UserForm1 ja sen jälkeen Näytä koodi.

8. Valitse Käyttäjätunnus vasemmalta avattavasta luettelosta. Valitse avattavasta oikeasta alasvetovalikosta Aloita.

9. Lisää seuraavat koodiluokat:

Private Sub UserForm_Initialize()

ComboBox1.ColumnCount = 2

Dim Films(1 To 5, 1 To 2) As String
Dim i As Integer, j As Integer

Films(1, 1) = "Lord of the Rings"
Films(2, 1) = "Speed"
Films(3, 1) = "Star Wars"
Films(4, 1) = "The Godfather"
Films(5, 1) = "Pulp Fiction"

Films(1, 2) = "Adventure"
Films(2, 2) = "Action"
Films(3, 2) = "Sci-Fi"
Films(4, 2) = "Crime"
Films(5, 2) = "Drama"

ComboBox1.List = Films

End Sub

Selitys: Ensimmäinen koodirivi asettaa yhdistelmäruudun sarakkeiden lukumäärän arvoon 2. Sen sijaan, että sarakkeiden lukumäärä määritettäisiin ajon aikana, voit myös määrittää tämän asetuksen suunnitteluaikana. Tämän saavuttamiseksi napsauta hiiren kakkospainikkeella yhdistelmävalikon ohjausta, valitse Ominaisuudet ja määritä ColumnCount-ominaisuus 2. Seuraavaksi ilmoitamme ja alustetaan kaksiulotteinen taulukko. Viimeinen koodirivi määrittää sarjan yhdistelmäruudulle.

Olemme nyt luoneet Userformin ensimmäisen osan. Vaikka se näyttää hyvältä jo, mikään ei tapahdu vielä, kun napsautamme Userformin komentopainikkeita.

10. Kaksoisnapsauta Project Explorerissa UserForm1-ohjelmaa.

11. Kaksoisnapsauta OK-painiketta.

12. Lisää seuraavat koodiluokat:

Private Sub CommandButton1_Click()

Unload Me

MsgBox "You selected " & ComboBox1.Value

On Error Resume Next
MsgBox "You like " & ComboBox1.Column(1) & " movies"

End Sub

Huomautus: nämä koodirivit sulkevat Excel VBA Userform -näytön ja näyttävät valitun kohteen ja tyylilajin. "On Error Resume Next" -sanoma jättää virheen, kun käyttäjä täyttää oman elokuvansa (tässä tapauksessa ei ole olemassa lajityyppiä).

13. Kaksoisnapsauta Peruuta-painiketta.

14. Lisää seuraava koodirivi:

Private Sub CommandButton2_Click()

Unload Me

End Sub

Tulos, kun valitset Nopeus ja napsauta OK.

Multicolumn Combo Box -tulos

Multicolumn Combo Box -tulos

Lue myös: