/ / Valutaomvandlare i Excel VBA

Valutakonverterare i Excel VBA

Nedan ser vi på ett program i Excel VBA vilket skapar en användarform som omvänder vilket belopp som helst från en valuta in i en annan.

Användarformen vi ska skapa ser ut som följer:

Valutakonverterare i Excel VBA

För att skapa detta användarformulär, utför följande steg.

1. Öppna Visual Basic Editor. Om Project Explorer inte är synligt klickar du på Visa, Project Explorer.

2. Klicka på Insert, Userform. Om Verktygslådan inte visas automatiskt klickar du på Visa, Verktygslåda. Din skärm bör ställas in enligt nedan.

Userform Screen Setup i Excel VBA

3. Lägg till etiketterna, listrutorna (först till vänster, andra till höger), textrutor (först till vänster, andra till höger) och kommandoknapp. När detta har slutförts ska resultatet överensstämma med bilden av användarformen som visats tidigare. Skapa till exempel en listrutekontroll genom att klicka på ListBox från Verktygslådan. Därefter kan du dra en listruta på användarformuläret.

4. Du kan ändra namn och bildtexter på kontrollerna. Namnen används i Excel VBA-koden. Bildtext är de som visas på din skärm. Det är bra att ändra namnen på kontrollerna, men det är inte nödvändigt här eftersom vi bara har några kontroller i det här exemplet. Om du vill ändra bildtexten i användarformat, kommandoknapp och etiketter klickar du på Visa, Egenskaper fönstret och klickar på varje kontroll.

5. För att visa användarformen, placera en kommandoknapp på ditt arbetsblad och lägg till följande kodrad:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

Vi ska nu skapa Sub UserForm_Initialize. När du använder Visa-metoden för användarformuläret utförs denna del automatiskt.

6. Öppna Visual Basic Editor.

7. I Project Explorer högerklickar du på UserForm1 och klickar sedan på Visa kod.

8. Välj Användarformulär i den nedrullningsbara listrutan. Välj Initialize från den högra rullgardinsmenyn.

9. Lägg till följande kodlinjer:

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

Förklaring: Först fylls de två listrutorna. Därefter är USD-valutan inställd som standard i den första listrutan och EURO-valutan är inställd som standard i den andra listrutan. Slutligen matas värdet 1 i den första textrutan och värdet 0,722152 skrivs in i den andra textrutan.

Vi har nu skapat den första delen av Userform. Även om det ser snyggt ut, kommer ingenting att hända ännu när vi klickar på knappen Gå.

10. Dubbelklicka på UserForm1 i Project Explorer.

11. Dubbelklicka på Go-knappen.

12. Lägg till följande kodlinjer:

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

Förklaring: För det första förklarar vi en matris. Arrayet har två dimensioner. Den består av 3 rader och 3 kolumner. Därefter initierar vi varje element i matrisen. Till exempel är räntorna (1,0) valutakursen från amerikanska dollar till euro. Därefter börjar vi en dubbel loop. Beroende på de valda valutorna i listrutorna konverterar Excel VBA den mängd som anges i den första textrutan och visar resultatet i den andra textrutan.

Exempel: Om jag = 2 och j = 1 och vi anger värdet 2 i den första textrutan placerar Excel VBA värdet 2 * -hastigheter (2,1) = 2 * 1,583255 = 3,16651 i den andra textrutan.

13. Testa användarformuläret.

Resultat:

Valutaomvandlare Resultat

Läs också: