Using the Bloomberg API in vba

ecbtln picture ecbtln · Jan 4, 2012 · Viewed 16.1k times · Source

I am trying to load data with the bloomberg API using this function-

' Make certain you have a Reference to C:\blp\API\ActiveX\blpdatax.dll
Sub FindBloombergData()
On Error GoTo Handler:

Dim oBlp As BLP_DATA_CTRLLib.BlpData
Dim ReqSecurities As Variant
Dim ReqFields As Variant
Dim vtResult As Variant
Dim n As Integer

Set oBlp = New BlpData
ReqSecurities = Array("SX5E Index")

ReqFields = Array("OPT_CHAIN")

With oBlp
.SubscriptionMode = ByRequest
.Subscribe ReqSecurities, 3, ReqFields, , , vtResult
End With

Stop 'and look at the results in Local or Watch Window
For n = 0 To UBound(vtResult(0, 0), 1)
Debug.Print n, vtResult(0, 0)(n, 0)
Next

Handler:
If Err.Number <> 0 Then
MsgBox Err.Description, vbCritical
End If

Set oBlp = Nothing
End Sub

However, whenever I try to run it I get this error: "compile-error user defined type not defined" What am I doing wrong? it highlights the line of code with this code: Dim oBlp As BLP_DATA_CTRLLib.BlpData but I definitely have the bloomberg API installed

Answer

iamchrisa picture iamchrisa · May 19, 2015

I just encountered the same problem. The reason is very simple. The legacy code was deprecated in 2011 and Bloomberg no longer supports it. The code needs to be converted to Bloomberg's COM V3 service.