初めて質問させて頂きます。
当方、大変お恥ずかしながら完璧に初心者であります故、文章上読み辛い点何卒御容赦下さい。
エクセルのセルにリンク式( =SYSTEM名|TOPIC名!ITEM名 )を置く形式のクライアントに対するホットリンクサーバを作成しています。
20年以上も古い技術となってしまったDDEですが、覚えのある方はいらっしゃいますでしょうか。
現状ですが、
エクセルからのXTYP_REQUEST(サーバのCallBACKにXTYP_ADVSTARTを置かず、手動でセルを更新させる)に対しては正しく値をセルに反映させられますが、アドバイズループ開始後はDdePostAdvise時点でエラーが発生しており、XTYP_ADVREQでの処理が行われず値がセルに届きません(エラー発生はCase XTYP_ADVREQ時処理のReturn DdeCreateDataHandle()タイミングで発生しているようです)。
発生エラーはDMLERR_DLL_USAGEですが、Initializeでは正しくAPPCLASS_STANDARDとして登録しています。
DMLERR_DLL_USAGEエラーはDdeCreateDataHandleに対してではなく、DdePostAdviseに対して返されるエラーコードですが、例えばCase XTYP_ADVREQ処理に「Return True」と不適切処理を行ってもこのエラーが返ってきます。
また、このサーバから、エクセル(対リンク式)以外のDDEクライアントにはホットリンクにおいてエラー無くデータが送られていますので、コード上大まかには誤りは無いと思います。例えば、エクセルのVBAで作成したDDEクライアントに対しても「DdePostAdvise⇒XTYP_ADVREQ⇒return DdeCreateDataHandle()⇒クライアントに値が送られる」の一連は正しく動作します。
環境は以下になります。
OS :Windows7
サーバ :VB.net(Wisual Studio 2015)
クライアント:EXCEL(office 2010)
楽天証券さんのRSSはこのサーバを実現しているので(EXCELアドイン(これもRSSという名前ですが)無しでもリンク式に対する値の更新が行われます。)方法はあるのだろうと思いますが、文献やネット情報も少なく、自力では行き詰ってしまいました。
エクセルのリンク式に対してのホットリンクサーバ作成には、何か特別な作業が必要なのでしょうか。
諸先輩方でご存知の方がいらっしゃれば、ぜひご教授頂きたくお願い申し上げます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/01/09 04:31
2016/01/09 09:16