/ / Valutakalkulator i Excel VBA

Valutakalkulator i Excel VBA

Nedenfor ser vi på et program i Excel VBA som skaper en brukerform som konvertitter noe beløp fra en valuta inn i en annen.

Brukerformen vi skal lage, ser ut som følger:

Valutakalkulator i Excel VBA

For å opprette denne brukerformen, utfør følgende trinn.

1. Åpne Visual Basic Editor. Hvis Project Explorer ikke er synlig, klikker du på Vis, Project Explorer.

2. Klikk på Sett inn, Brukerform. Hvis Verktøykassen ikke vises automatisk, klikker du på Vis, Verktøykasse. Skjermen din bør settes opp som nedenfor.

Userform Screen Setup i Excel VBA

3. Legg til etikettene, listekassene (først til venstre, det andre til høyre), tekstbokser (først til venstre, det andre til høyre) og kommandoknappen. Når dette er fullført, bør resultatet være i tråd med bildet av brukerformen som ble vist tidligere. For eksempel, opprett en listebokskontroll ved å klikke på ListBox fra Verktøykassen. Deretter kan du dra en listeboks på Brukerform.

4. Du kan endre navnene og bildeteksten til kontrollene. Navnene brukes i Excel VBA-koden. Undertekster er de som vises på skjermen. Det er god praksis å endre navnene på kontrollene, men det er ikke nødvendig her fordi vi bare har noen få kontroller i dette eksemplet. Hvis du vil endre bildeteksten til brukerformat, kommandoknapp og etiketter, klikker du på Vis, Egenskaper Vindu og klikker på hver kontroll.

5. For å vise brukerformatet, legg en kommandoknapp på regnearket og legg til følgende kodelinje:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

Vi skal nå lage Sub UserForm_Initialize. Når du bruker Show-metoden for brukerformularen, blir denne delen automatisk utført.

6. Åpne Visual Basic Editor.

7. I Project Explorer, høyreklikk på UserForm1 og klikk deretter Vis kode.

8. Velg Brukerform fra den venstre rullegardinlisten. Velg Initialize fra den høyre rullegardinlisten.

9. Legg til 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: Først fylles de to listefeltene. Deretter er USD-valutaen angitt som standard i den første listeboksen, og EURO-valutaen er angitt som standard i den andre listeboksen. Endelig er verdien 1 angitt i den første tekstboksen og verdien 0,722152 er oppgitt i den andre tekstboksen.

Vi har nå opprettet den første delen av brukerformen. Selv om det ser pent ut, vil ingenting skje ennå når vi klikker på Go-knappen.

10. Dobbeltklikk på UserForm1 i Project Explorer.

11. Dobbeltklikk på gå-knappen.

12. Legg til følgende kodelinjer:

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 matrise. Arrangementet har to dimensjoner. Den består av 3 rader og 3 kolonner. Deretter initialiserer vi hvert element i gruppen. For eksempel er satser (1,0) valutakursen fra amerikanske dollar til euro. Deretter starter vi en dobbel sløyfe. Avhengig av de valgte valutaene i listekassene konverterer Excel VBA mengden som er angitt i den første tekstboksen, og viser resultatet i den andre tekstboksen.

Eksempel: Hvis jeg = 2 og j = 1 og vi legger inn verdien 2 i den første tekstboksen, plasserer Excel VBA verdien 2 * rates (2,1) = 2 * 1,583255 = 3,16651 i den andre tekstboksen.

13. Test brukerformatet.

Resultat:

Valutakalkulator Resultat

Les også: