/ / Valutaomregner i Excel VBA

Valutaomregner i Excel VBA

Nedenfor vil vi se på et program i Excel VBA som skaber en brugerform det konverterer ethvert beløb fra en betalingsmiddel ind i en anden.

Brugerformularen, vi skal oprette, ser ud som følger:

Valutaomregner i Excel VBA

For at oprette denne brugerformular, udfør følgende trin.

1. Åbn Visual Basic Editor. Hvis Project Explorer ikke er synlig, skal du klikke på Vis, Project Explorer.

2. Klik på Indsæt, Brugerformular. Hvis værktøjskassen ikke vises automatisk, skal du klikke på Vis, Værktøjskasse. Din skærm skal opsættes som nedenfor.

Brugerform Screen Setup i Excel VBA

3. Tilføj etiketterne, listekasser (først til venstre, andet til højre), tekstfelter (først til venstre, andet til højre) og kommandoknap. Når dette er gennemført, skal resultatet være i overensstemmelse med billedet af den tidligere viste brugerformular. For eksempel opretter du en listeboks kontrol ved at klikke på ListBox fra værktøjskassen. Derefter kan du trække en listefelt på brugerformularen.

4. Du kan ændre navnene og teksten på kontrollerne. Navne bruges i Excel VBA-koden. Undertekster er dem, der vises på din skærm. Det er god praksis at ændre navnene på kontrollerne, men det er ikke nødvendigt her, fordi vi kun har få kontroller i dette eksempel. For at ændre billedteksten i Brugerform, kommandoknappen og etiketterne, skal du klikke på Vis, Egenskaber Vindue og klikke på hver kontrol.

5. For at vise brugerformularen skal du placere en kommandoknap på dit regneark og tilføje følgende kode linje:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

Vi skal nu oprette Sub UserForm_Initialize. Når du bruger visningsmetoden til brugerformularen, udføres denne under automatisk.

6. Åbn Visual Basic Editor.

7. I Project Explorer skal du højreklikke på UserForm1 og derefter klikke på View Code.

8. Vælg Brugerform fra den venstre rullemenu. Vælg Initialize fra den højre rulleliste.

9. Tilføj følgende kodelinjer:

Private Sub UserForm_Initialize()

With ListBox1
    .AddItem "Euro"
    .AddItem "Us Dollar"
    .AddItem "British Pound"
End With

With ListBox2
    .AddItem "Euro"
    .AddItem "Us Dollar"
    .AddItem "British Pound"
End With

ListBox1.ListIndex = 1
ListBox2.ListIndex = 0

TextBox1.Value = 1
TextBox2.Value = 0.722152

End Sub

Forklaring: For det første er de to listefelter udfyldt. Dernæst er US Dollar-valutaen angivet som standard i den første listefelt, og EURO-valutaen er angivet som standard i den anden listefelt. Endelig indtastes værdien 1 i den første tekstboks og værdien 0,722152 indtastes i den anden tekstboks.

Vi har nu oprettet den første del af brugerformularen. Selv om det ser pænt ud, sker der intet endnu, når vi klikker på knappen Gå.

10. Dobbeltklik på UserForm1 i Project Explorer.

11. Dobbeltklik på knappen Gå.

12. Tilføj følgende kode linjer:

Private Sub CommandButton1_Click()

Dim rates(0 To 2, 0 To 2) As Double, i As Integer, j As Integer

rates(0, 0) = 1
rates(0, 1) = 1.38475
rates(0, 2) = 0.87452

rates(1, 0) = 0.722152
rates(1, 1) = 1
rates(1, 2) = 0.63161

rates(2, 0) = 1.143484
rates(2, 1) = 1.583255
rates(2, 2) = 1

For i = 0 To 2
    For j = 0 To 2
        If ListBox1.ListIndex = i And ListBox2.ListIndex = j Then TextBox2.Value = TextBox1.Value * rates(i, j)
    Next j
Next i

End Sub

Forklaring: Først erklærer vi en matrix. Arrayet har to dimensioner. Den består af 3 rækker og 3 søjler. Derefter initialiserer vi hvert element i arrayet. For eksempel er satser (1,0) valutakursen fra amerikanske dollar til euro. Derefter starter vi en dobbelt løkke. Afhængigt af de valgte valutaer i listekasserne konverterer Excel VBA det beløb, der er indtastet i den første tekstboks, og viser resultatet i den anden tekstboks.

Eksempel: Hvis jeg = 2 og j = 1 og vi indtaster værdien 2 i den første tekstboks, placerer Excel VBA værdien 2 * satser (2,1) = 2 * 1,583255 = 3,16651 i den anden tekstboks.

13. Test brugerformularen.

Resultat:

Valutaomregner resultat

Læs også: