/ / Currency Converter in Excel VBA

Currency Converter in Excel VBA

Hieronder zullen we een programma bekijken in Excel VBA welke een userform maakt die bekeerlingen elk bedrag van één valuta in een andere.

Het Userform dat we gaan maken ziet er als volgt uit:

Currency Converter in Excel VBA

Om dit gebruikersformulier aan te maken, voert u de volgende stappen uit.

1. Open de Visual Basic-editor. Als de Projectverkenner niet zichtbaar is, klikt u op Beeld, Projectverkenner.

2. Klik op Invoegen, Gebruikersformulier. Als de Toolbox niet automatisch verschijnt, klikt u op Beeld, Werkset. Uw scherm moet worden ingesteld zoals hieronder.

Gebruikersformulier Scherminstellingen in Excel VBA

3. Voeg de labels, keuzelijsten (eerst aan de linkerkant, de tweede aan de rechterkant), tekstvakken (eerst aan de linkerkant, de tweede aan de rechterkant) en de opdrachtknop toe. Zodra dit is voltooid, moet het resultaat consistent zijn met de afbeelding van het eerder weergegeven gebruikersformulier. Maak bijvoorbeeld een keuzelijstbesturingselement door in de werkset op ListBox te klikken. Vervolgens kunt u een keuzelijst op het gebruikersformulier slepen.

4. U kunt de namen en bijschriften van de bedieningselementen wijzigen. Namen worden gebruikt in de Excel VBA-code. Onderschriften zijn diegene die op je scherm verschijnen. Het is een goede gewoonte om de namen van de besturingselementen te wijzigen, maar dit is hier niet nodig, omdat we in dit voorbeeld slechts enkele besturingselementen gebruiken. Als u het bijschrift van het gebruikersformulier, de opdrachtknop en labels wilt wijzigen, klikt u op Weergave, venster Eigenschappen en klikt u op elk besturingselement.

5. Om het gebruikersformulier weer te geven, plaatst u een opdrachtknop op uw werkblad en voegt u de volgende coderegel toe:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

We gaan nu de Sub UserForm_Initialize maken. Wanneer u de methode Show voor het Userform gebruikt, wordt deze sub automatisch uitgevoerd.

6. Open de Visual Basic-editor.

7. Klik in de projectverkenner met de rechtermuisknop op UserForm1 en klik vervolgens op Code weergeven.

8. Kies Userform in de linker vervolgkeuzelijst. Kies Initialiseren in de vervolgkeuzelijst.

9. Voeg de volgende coderegels toe:

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

Uitleg: eerst worden de twee keuzelijsten gevuld. Vervolgens wordt de valuta van de Amerikaanse dollar als standaard ingesteld in de eerste keuzelijst en wordt de EURO-valuta als standaard ingesteld in de tweede keuzelijst. Ten slotte wordt de waarde 1 ingevoerd in het eerste tekstvak en wordt de waarde 0.722152 ingevoerd in het tweede tekstvak.

We hebben nu het eerste deel van het gebruikersformulier gemaakt. Hoewel het er al goed uitziet, zal er nog niets gebeuren als we op de knop Go klikken.

10. Dubbelklik in de projectverkenner op UserForm1.

11. Dubbelklik op de knop Go.

12. Voeg de volgende coderegels toe:

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

Uitleg: eerst verklaren we een array. De array heeft twee dimensies. Het bestaat uit 3 rijen en 3 kolommen. Vervolgens initialiseren we elk element van de array. Tarieven (1,0) zijn bijvoorbeeld de wisselkoers van Amerikaanse dollar naar euro. Vervolgens starten we een dubbele lus. Afhankelijk van de geselecteerde valuta in de keuzelijsten, converteert Excel VBA het bedrag dat is ingevoerd in het eerste tekstvak en geeft het resultaat weer in het tweede tekstvak.

Voorbeeld: als i = 2 en j = 1 en we voeren de waarde 2 in het eerste tekstvak in, Excel VBA plaatst de waarde 2 * rates (2,1) = 2 * 1.583255 = 3.16651 in het tweede tekstvak.

13. Test het gebruikersformulier.

Resultaat:

Currency Converter Resultaat

Lees ook: