DDEの憂鬱
906 名前:Trader@Live![sage] 投稿日:2013/01/23(水) 09:19:28.31
MT4を起動してから
DDE-Sample.xlsを開いてもリアルタイムレートがエクセルに表示されません。
どうしたらエクセルにレートを表示できますでしょうか?
DDEサーバーを有効にするにチェックをいれてます。
エクセルは2007です。
エクセルの リンクの編集ー値の更新を押してもだめでした・・
この問題は・・・難しいですね。
「MT4のDDE経由でExcelに情報を渡せません」でも解決策は無いですし、マイクロソフトの「DDE links crash Excel 2010 on Windows 7 64bits」のいくつかの回避案も万能ではないようです。
私の環境でも、Excelが固まる現象を確認できたのですが、固まるようになると、何をやっても直らず、逆に動くようになると常に動く・・・ようで、原因追求も対策もままらない状況です。
調べて集まった情報をまとめると、、
新しいExcel では、 MT4 を 'MT4' と囲む必要がある。
=MT4|BID!EURUSD
↓
='MT4'|BID!EURUSD
銘柄に # が含まれる場合は、銘柄も囲む。
='MT4'|BID!'#CH3'
Google Chrome や soffice.exe を動かしているとダメ。
アンインストールするか、soffice.exeを管理者権限で実行すると治った。
↑私の環境では、DDEが動作するときは、Chrome動作中でも問題無く動きました。
Excel をアンインストールし、再インストールすると治る。
↑私の環境では、治らなかったこともあります。
以下のVBAマクロをExcel上で動かすと治る(?)。
Sub KillDDE()
Dim i, ChannelNumber As Integer
For i = 1 To 1000
Application.DDETerminate (i) ' Closes all DDE links whose channels might be open
Next i
End Sub
↑※私の環境では、治ったことは無いです。。
MT4の代わりにDDEの送信テスト用に使えるツール。
http://www.codematic.net/excel-development/excel-dev-general/excel-dde-links.htm ただのテストツール
https://www.prorealtime.com/en/help-manual/dde-data-export ProRealTime DDE(有料)
DDESPYは動作のモニタ用。
今のところ、私の環境では下記の手順で2回、復旧に成功していますので、お困りの人は試してみてください。
1.ウィンドウズを再起動します。 2.MT4 を1つだけ起動します。 他のアプリは起動してはいけません。絶対に・・・ 3.Excel を起動します。 4. ='MT4'|BID!EURUSD と数式を入れてみます。 MT4 の前後を ' で囲んでください。