開啟含有DDE檔案,會彈出一對話框,確認檔案是否做DDE更新連結,在按下不要更新後,Excel 就不會對DDE進行連結,但如果在檔案編輯完成後,需要再重新更新連結DDE,在不重新開啟檔案讓Excel自動做更新連結下,可以透過Excel VBA的函數來完成。
以凱基的HTS看盤軟體為例,讀著可以依照自己使用的看盤軟體為主,開啟凱基超級大三元DDE的內容。
選擇DDE項目。
傳送至Excel。
DDE格式:ServerName|Topic!Item
開盤價:"=TS|KS!TXFL6.130"
最高價:"=TS|KS!TXFL6.131"
最低價:"=TS|KS!TXFL6.132"
成交價:"=TS|KS!TXFL6.124"
接著將上述4個項目用Excel VBA來寫以下程式。
Sub DDE更新連結() Const c_strItem As String = "130, 131, 132, 124" '開盤價、最高價、最低價、收盤價 Dim astrItem() As String Dim channel As Long Dim i As Integer, j As Integer Dim returnList '建立DDE連結通道,以超級大三元為例 'DDEInitiate(AppName, Topic) channel = Application.DDEInitiate("TS", "KS") '超級大三元的AppName:TS、Topic:KS '確認通道建立 If channel <> 0 Then '分割字串項目 astrItem = Split(c_strItem, ", ") For i = LBound(astrItem) To UBound(astrItem) '指定欲查詢的項目 'DDERequest(channel, item) returnList = Application.DDERequest(channel, "TXFL6." & astrItem(i)) '取得該項目的資料內容 For j = LBound(returnList) To UBound(returnList) Worksheets(1).Cells(1, i + 1).Formula = returnList(j) Next Next End If '關閉DDE連結通道 Application.DDETerminate channel End Sub上面程式碼只是簡單的內容,後續可以延伸出很多應用的功能。
程式執行結果:
PS:此方法目前尚無法證明DDE是否會持續更新,需要即時接收變化,請讀者自行加入時間計時。
參考資料: