2016-12-21 27 views
1

Excel 2010でうまく動作する次のコードがありますが、BloombergのAPIが更新されたため、このコードはExcel 2016では機能しません。参照BLP_DATA_CTRLLib.BlpDataは古いですが、新しいAPIリファレンスを使用するのに苦労します。Bloomberg APIリファレンス

引用符を保存するために私のブルームバーグの参照を更新する方法を知っている人はいますか?

Function Get_BBG_Price(dataa As Variant, CISI As Long) 

    Dim ReqSecurities As Variant, vtResult As Variant, ReqFields As Variant 
    Dim Arraystr As String 
    Dim oBlp As BLP_DATA_CTRLLib.BlpData 

    ReDim ReqSecurities(1 To UBound(dataa, 1)) 

    For i = 1 To UBound(dataa, 1) 

     ReqSecurities(i) = dataa(i, CISI) & "@IEHY ISIN" ' 

    Next i 

    Set oBlp = New BlpData 

    ' 
    ReqFields = Array("PX_BID") 

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

    Get_BBG_Price = vtResult 

End Function 
+0

私たちがお手伝いできるように闘争を定義してください。コードからのエラーメッセージや予期しない結果がそのまま現れていますか?問題のあるコード行を指摘できますか? –

+0

Bloombergのドキュメントを公開してください。 SOコミュニティがこれを持つ可能性は非常にスリムです。 –

+0

@ JimmySmith:問題を引き起こすのはBLP_DATA_CTRLLib.BlpDataです。私がExcel 2016でそれを実行する場合、ワークシートは単にクラッシュします。 – Jeweller89

答えて

0

私は見ていましたが、このバージョンのコーディングは推奨されなくなりました。私はあなたが「オブジェクトを作成できません」のラインに沿ってエラーが出る把握でしょうが、に、2016年

にあなたはおそらく、彼らはここにあるC#バージョンを使用したいだろうと https://www.bloomberglabs.com/api/libraries/

を隠しすることができますそれを使用するには、私はここにコードを使用するだろうhttp://mikejuniperhill.blogspot.com/2013/06/bloomberg-v3com-api-wrapper-update-for.html *コードが長すぎる、または私はここにそれを掲示するだろう。

+1

これまでのご返信ありがとうございます。私はVBAでコードを必要とするので、C#はオプションではありません。どうしたら廃止された参照を置き換えることができるかを提案してください。 – Jeweller89

+0

C#のバージョンを直接使用することはできませんが、ラッパーはこれを許可します。アセンブリ(DLLまたはEXE)をインストールしてから、作成したラッパーを使用して呼び出しを行うだけです。 –

+0

私はそこにC++バージョンを見つけましたが、そのためにはDLLの登録も必要です。 .NETの多くはCOMと互換性があり、VBAとVB.NET/C#の間で変数の型が変更されたことを考慮したラッパーを持っているだけです。 –

関連する問題