Di seguito vedremo un programma in Excel VBA che crea un form che converte qualsiasi importo da una valuta in un’altra.

Il form ci accingiamo a creare look come segue:

Currency Converter in Excel VBA

Per creare questo form, eseguire i seguenti passaggi.

  1. Aprire il Visual Basic Editor. Se il progetto Explorer non è visibile, fare clic su Visualizza, progetti.

  2. Fare clic su Inserisci, Userform. Se la Casella degli strumenti non viene visualizzata automaticamente, fare clic su Visualizza, Strumenti. Lo schermo dovrebbe essere impostato come di seguito.

Userform Screen Setup in Excel VBA

  1. Aggiungere le etichette, caselle di riepilogo (primo a sinistra, il secondo a destra) pulsante di comando, caselle di testo (prima a sinistra, il secondo a destra) e. Una volta che questo è stato completato, il risultato deve essere coerente con l’immagine del Userform mostrato in precedenza. Ad esempio, creare un elenco di controllo di dialogo facendo clic sul ListBox dalla Casella degli strumenti. Successivamente, è possibile trascinare una casella di riepilogo sopra il Form utente.

  2. È possibile modificare i nomi e le didascalie dei controlli. I nomi sono utilizzati nel codice VBA di Excel. Le didascalie sono quelli che appaiono sullo schermo. È buona norma cambiare i nomi dei controlli, ma non è necessario qui perché abbiamo solo un paio di controlli in questo esempio. Per modificare la didascalia del form utente, pulsante di comando e le etichette, fare clic su Visualizza, Finestra Proprietà e fare clic su ogni controllo.

  3. Per mostrare il form, inserire un pulsante di comando nel foglio di lavoro e aggiungere la riga di codice seguente:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

Ora stiamo andando a creare l’UserForm_Initialize Sub. Quando si utilizza il metodo Show per il form, verrà automaticamente eseguito questo sub.

  1. Aprire il Visual Basic Editor.

  2. In Esplora progetti, fare clic destro su UserForm1 e quindi fare clic su Visualizza codice.

  3. Scegliere Userform dall’elenco a discesa sinistra. Scegli inizializzazione dall’elenco a discesa a destra.

  4. Aggiungere le seguenti righe di codice:

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

Spiegazione: primo, le due caselle di riepilogo sono pieni. Avanti, La moneta dollaro è impostato come predefinito nella casella prima lista e l’euro currencyis impostato come predefinito nella casella secondo elenco. Infine, il valore 1 viene immesso nella prima casella di testo e il valore 0,722,152 mila viene immesso nella seconda casella di testo.

Abbiamo creato la prima parte del form utente. Anche se sembra già pulito, non succederà nulla ma quando si clicca sul pulsante Vai.

  1. In Esplora progetti, fare doppio clic su UserForm1.

  2. Fare doppio clic sul pulsante Vai.

  3. Aggiungere le seguenti righe di codice:

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

Spiegazione: prima, dichiariamo un array. La matrice ha due dimensioni.

Si compone di 3 righe e 3 colonne. Successivamente, abbiamo inizializzare ogni elemento dell’array. Ad esempio, i tassi (1,0) è il tasso di cambio da dollaro a euro. Quindi, iniziamo un doppio loop. A seconda delle valute selezionate nelle caselle di riepilogo, Excel VBA converte l’importo iscritto nella prima casella di testo e visualizza il risultato nella seconda casella di testo.

Esempio: se i = 2 e j = 1 e inserire il valore 2 nella prima casella di testo, Excel VBA pone il valore di 2 tariffe (2,1) = 2 * 1,583,255 mila = 3,16,651 mila nella seconda casella di testo.

  1. Prova il form.

Risultato:

Currency Converter Result