2014-12-02 18 views
0

我需要從Visio圖形上的形狀中獲取修改後的形狀數據,並將它們插回到原始的外部數據文件中。在這種情況下,外部數據將是一個Excel電子表格。需要以編程方式查找Visio外部數據的原始文件

我知道如何讀取VB中的形狀數據和形狀表信息。

但是,我需要幫助找到原始文件和VBA中的外部數據源的位置。這是我堅持的唯一的東西。有任何想法嗎?

編輯:

我發現DataConnection.ConnectionString它得到接近,但沒有雪茄。它給了我完整的連接字符串,如果它沒有'Mode = Read',我可以重新使用它打開Excel文件的連接。在字符串中。

除非有人有更好的解決辦法,我想我可以剝離'Mode = Read'在返回的連接字符串之外,看看我能否從那裏出發。

+0

除非有人有更好的想要在哪裏找到路徑,我會'去掉'或'只保留'不需要或不需要的東西。 – 2014-12-02 21:44:39

+0

剝離「Mode = Read」是不夠的,你很可能還需要剝下IMEX。同時使用記錄集在Visio中也不是小菜一碟;它使用舊的ADODB xml。 – Nikolay 2014-12-02 22:24:05

回答

0

去圖中,我花了幾個小時在Google上尋找答案,在發佈問題後10分鐘,我在查找DataConnection對象後找到了答案。

答案是使用DataConnection.FileName返回原始外部數據文件的路徑和文件名。

For Each win In Visio.ActiveWindow.Windows 
    ' The External Data window has ID = 2044 
    If win.ID = 2044 Then 
    win.Visible = True 
    strDataSourceFileName = win.SelectedDataRecordset.DataConnection.FileName 
    Exit For 
    End If 
Next win 
相關問題