2010-03-02 38 views
7

我需要使用Microsoft.Office.Interop.Word命名空間來提取Word文檔是否包含宏以及哪些宏。與其他.Net類的文檔相比,此名稱空間的MSDN文檔沒有提供太多信息。 我在哪裏可以獲得關於這個命名空間的更多信息(例子,完整的文檔等)。我已經在Google和SO上搜索過,但沒有太多信息。Microsoft.Office.Interop.Word文檔

+0

什麼版本的Office? – 2010-03-05 00:19:26

+0

@ rold2007:只是想檢查下面的答案是否回答你的問題。 – 2010-03-15 15:22:49

+0

@Otaku:到目前爲止的三個答案都很有趣,但是這個應用程序的開發還沒有開始,所以我不知道我需要開發的是否可行。當我的測試完成後,我會回到這裏。 – rold2007 2010-03-17 04:46:06

回答

0

Microsoft.Vbe.Interop是VBA的命名空間。 (VBE是Visual Basic for Application Extensibility 5.3。)幫助您搜索的關鍵字是VBProject,VBComponentCodeModule

MSDN搜索VBProject會讓你開始。 http://social.msdn.microsoft.com/Search/en-US?query=VBProject&ac=8

以下文章適用於VBA,但很容易轉換。 WD2000:示例宏返回宏和過程名稱http://support.microsoft.com/kb/262961

+0

期望出現異常「對Visual Basic項目的編程訪問不可信」。當你嘗試這個。谷歌錯誤消息瞭解更多信息。 (你也會發現一些人試圖做同樣的事情!) – MZB 2010-03-20 16:18:49

+0

你可以在「受信任的發佈者」選項卡上通過宏安全來更改它。此外,使用適當的宏安全設置向項目添加證書將繞過此消息。 – AMissico 2010-03-20 17:19:10

-1

大部分文檔位於Microsoft Word附帶的VBA幫助文件中 - 對於Microsoft Word 2003,請查找文件VBAWD10.CHM。同時檢查Microsoft Office Visual Basic參考(VBAOF11.CHM

上面的10和11是Word和Office版本號 - 因此您的里程將根據您安裝的Word版本而有所不同。此外,在所有版本的Word中,命名並不一致,因此搜索VBA * .CHM的所有內容可能會提升您所需的大部分文檔。

這些將回答有關Word API的大部分問題。

無法看到在打開的文檔或模板中查找宏列表的顯而易見的方式,但是...如果您找到方法,請添加註釋以解決此問題,因爲我有興趣知道。 (請注意,每次調用都會在使用Word互操作時引發異常,如果Word有任何模式對話框打開,您將收到一個異常,例如,相應程序)。

+0

@unknown - 如果你要對某件事進行倒票,那麼爲什麼答案沒有幫助的線索會很有用。 (完成了與@ rold2007非常相似的內容並查找了相同的文檔,我很想知道是否有更好的信息來源)。 – MZB 2010-03-20 16:12:27

+0

正如@AMISSico所示,Application.VBE屬性可能是需要查看的地方。 – MZB 2010-03-20 16:19:51

+0

只有一個猜測,因爲這個問題只有一個答案。我想投票是因爲你引用Office和Word對象模型引用而不是VBA/VBE引用。此外,也許是因爲你正在引用VBA而不是.NET命名空間。 – AMissico 2010-03-20 17:28:08

3

正確的答案是檢查Document.HasVBProject屬性。

引用來自備註部分:「該屬性在編程確定文檔是否需要保存爲支持宏的文件格式時最爲有用,如果以其他格式保存,文檔中包含的宏和代碼項目可能會迷路了。「

相關問題