質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

Q&A

1回答

3278閲覧

DDEホットリンクサーバとEXCEL

sugiuraoff

総合スコア8

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

0グッド

0クリップ

投稿2015/12/18 02:32

初めて質問させて頂きます。
当方、大変お恥ずかしながら完璧に初心者であります故、文章上読み辛い点何卒御容赦下さい。

エクセルのセルにリンク式( =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という名前ですが)無しでもリンク式に対する値の更新が行われます。)方法はあるのだろうと思いますが、文献やネット情報も少なく、自力では行き詰ってしまいました。
エクセルのリンク式に対してのホットリンクサーバ作成には、何か特別な作業が必要なのでしょうか。
諸先輩方でご存知の方がいらっしゃれば、ぜひご教授頂きたくお願い申し上げます。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

私はDDEの経験が無いので的外れな回答になってしまうかもしれませんが、文献であれば、OLE/DDEハンドブックが中古でAmazonに置いてました。

1万5千円ほどしますので自費購入だと少々値が張りますし、内容も見てないので何も保障できませんが。

CiNiiというサイトで、保有している図書館が18件ほどヒットしたので、お住まいの地域であれば問い合わせてみてはいかがでしょうか。

あと、英語なら「DDE Programming tutorial」でGoogle検索するといろいろ見つかります。

投稿2016/01/08 23:03

thom.jp

総合スコア686

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sugiuraoff

2016/01/09 04:31

ご回答頂きありがとうございます。 海外サイトもかなり端っこの方まで探しましたが、解決のヒントになるところは見つかりませんでした。 依然自力での解決には至っておりません故、ご紹介頂いた文献の購入も視野に入れたいと思います。 その際は改めてご報告させて頂きます。
thom.jp

2016/01/09 09:16

コメントありがとうございます。 ちなみに、後学のために教えて欲しいのですが、今回、Automationを使用せずにDDEを選択したのはどうしてですか。 ※DDEに何かしらの優位点があるのであれば知っておきたいので。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問