Public Function FXRate(currency1 As String, currency2 As String, rateType As String) As Double
Dim str As String
Dim temp As String
Dim bidStart As Long
Dim bidEnd As Long
Dim askStart As Long
Dim askEnd As Long
Dim openStart As Long
Dim openEnd As Long
Dim closeStart As Long
Dim closeEnd As Long
Dim bid As Double
Dim ask As Double
Dim ropen As Double
Dim rclose As Double
str = "http://finance.yahoo.com/q?s=" & currency1 & currency2 & "=X"
temp = ExecuteWebRequest(str)
bidStart = InStr(temp, "Bid:")
bidEnd = InStr(bidStart, temp, "</td>")
bid = Mid(temp, bidStart + 65, bidEnd - bidStart - 72)
askStart = InStr(temp, "Ask:")
askEnd = InStr(askStart, temp, "</td>")
ask = Mid(temp, askStart + 65, askEnd - askStart - 72)
openStart = InStr(temp, "Open:")
openEnd = InStr(openStart, temp, "</td>")
ropen = Mid(temp, openStart + 38, openEnd - openStart - 38)
closeStart = InStr(temp, "Prev Close:")
closeEnd = InStr(closeStart, temp, "</td>")
rclose = Mid(temp, closeStart + 44, closeEnd - closeStart - 44)
If rateType = "ask" Then
FXRate = ask
ElseIf rateType = "bid" Then
FXRate = bid
ElseIf rateType = "open" Then
FXRate = ropen
ElseIf rateType = "close" Then
FXRate = rclose
End If
End Function
Private Function ExecuteWebRequest(ByVal url As String) As String
Dim oXHTTP As Object
If InStr(1, url, "?", 1) <> 0 Then
url = url & "&cb=" & Timer() * 100
Else
url = url & "?cb=" & Timer() * 100
End If
Set oXHTTP = CreateObject("MSXML2.XMLHTTP")
oXHTTP.Open "GET", url, False
oXHTTP.Send
ExecuteWebRequest = oXHTTP.ResponseText
Set oXHTTP = Nothing
End Function