Se você usar uma tabela de pesquisa de taxas de conversão, não há necessidade de VBA.
Se você for usar o VBA, meu pensamento seria "imaginar" e reduzir a taxa de conversão mais recente. Ou você pode fazer isso usando uma data específica, dependendo de onde você obtiver seus dados.
Trabalhar com isso também expandirá seu conhecimento sobre as possibilidades do VBA.
Aqui está um exemplo que usa os dados mais recentes de um determinado site, mas há muitos por aí. Para este, a chave da API é gratuita. Você terá que se candidatar.
'Set reference to Microsoft winHTTP Services 5.0
'You'll need to install a JSON converter, or perhaps parse the csv output
'You could also parse this simple JSON using Regular Expressions
Option Explicit
Option Compare Text
Function ConvertInText(S As String) As String
Dim V As Variant, W As Variant
Dim DT As Date
Dim I As Long
V = Split(S, " ")
For I = 0 To UBound(V)
If V(I) = "Dollars" Then
V(I) = "Euros"
V(I - 1) = Format(USDtoEUR(CCur(V(I - 1))), "0.00")
End If
Next I
ConvertInText = Join(V)
End Function
Private Function USDtoEUR(DOL As Currency) As Currency
Const myAPI As String = "apikey=xxxxxxxxxxxxx"
Const sURL As String = "https://www.alphavantage.co/query?function=CURRENCY_EXCHANGE_RATE&from_currency=USD&to_currency=EUR&"
Dim httpRequest As WinHttpRequest
Dim strJSON As String, JSON As Object
Set httpRequest = New WinHttpRequest
With httpRequest
.Open "Get", sURL & myAPI
.Send
.WaitForResponse
strJSON = .ResponseText
End With
Set httpRequest = Nothing
Set JSON = parsejson(strJSON)
USDtoEUR = JSON("Realtime Currency Exchange Rate")("5. Exchange Rate") * DOL
End Function