開啟含有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是否會持續更新,需要即時接收變化,請讀者自行加入時間計時。
參考資料:



