2011-04-23 81 views
1

是否有代碼可以讀取機器上安裝的office版本以及ms訪問的dll位置?用於從註冊表中讀取的VBA

所以我最近確信後期綁定是我的應用程序執行自動化的方式。然而,自動化是這個應用程序的主要功能,我需要從一些特定於版本的代碼中剝離不同的例程(主要用於ppt演示)。

因此,我不是真的試圖用參考檢查&來解決我的問題,因爲這不會有幫助。但我仍然想知道安裝了哪些版本的office,安裝了哪個版本的Office應用程序(Excel 11.0,Outlook 11.0等)以及dll的文件路徑。

所以我想知道如果我可以通過閱讀註冊表得到這些信息?

+0

「什麼辦公室的安裝」爲什麼?你打算如何使用這些信息?您的任何目標機器是否可以安裝多個版本的Office?如果是這樣,你想要什麼信息? – HansUp 2011-04-23 16:42:47

+0

「文件路徑到DLL」哪些DLL,爲什麼?將VBA引用設置爲「Microsoft PowerPoint 11.0 Object Library」時,我的機器上的文件位置是「C:\ Program Files \ Microsoft Office \ OFFICE11 \ MSPPT.OLB」您在使用DLL位置之後有什麼作用? – HansUp 2011-04-23 16:50:07

+0

@Hans ...實際漢斯他們不能在這些機器上安裝不止一個版本的辦公室作爲政策(但這並不是說有些人可能會這樣做)。因此,Office *文件夾存儲在不同的地方,取決於網站的配置...有些地方是C:\程序文件\ ...其他人的C:\ Office ...有些地方一起使用完全不同的驅動器。基本上,我將開始使用後期綁定,但似乎人們會說這種方法說,如果自動化不起作用,至少應用程序的其餘部分。所以我需要一種方法來檢查哪個庫... – Justin 2011-04-24 12:16:06

回答

4

如果您的遲到綁定肯定需要的是版本不可知的*.Application progid?

Dim oApp As Object 
Set oApp = CreateObject("Excel.Application") 
Debug.Print "ver " & oApp.Version, "build " & oApp.Build 
oApp.Quit 
+0

感謝Alex!這應該工作得很好! – Justin 2011-04-24 12:20:40