2010-05-27 39 views
1

我想開發和自動化Office軟件,如「Microsoft Excel 2007」和「Microsoft Word 2007」。但我不知道如何使用VBA或使用C#/ .Net框架來做到這一點。用於Office的VBA或.NET?

使用VBA與.Net框架有什麼好處?

哪一個我應該專注於學習?

+2

你能否澄清你將要開發什麼樣的項目? – Marek 2010-05-27 12:23:19

+0

想要學習如何編程的榮譽! – 2010-05-29 04:51:41

回答

7

當談到Office自動化時,VBA和.NET兩者都有其優點和缺點。下面只是從我頭頂開始的一些觀點。該列表並不完整,我的個人意見,所以隨時添加/刪除點,只要你喜歡。 .NET的

優點是

  • 更豐富的語言和基類庫(繼承,面向對象)
  • 支持類庫
  • 通常更好的工具支持,例如代碼分析,測試等
  • 容易與版本控制的

缺點整合。NET

  • 需要更多的學習
  • 更難以部署

優點爲VBA是

  • 相當渺茫
  • 代碼被本地執行在辦公室,無需較慢COM橋因此往往更快
  • 宏錄製可以可用於自動生成高質量的代碼
  • VBA的

缺點

  • 更多的是傳統技術
  • 爲一體的現代化和豐富的圖形用戶界面不支持
  • 有限的工具支持的

兩者都有共同點

  • 可以使用Windows API
  • 可以使用COM

當談到學習並獲得熟悉的Office對象模型,VBA肯定是更容易學習,特別是因爲它是很容易記錄一個宏,然後在VBA編輯器中簡單地玩。

底線是,VBA可能最適合應該易於部署的小型項目,而使用.NET,您可以使用完整的.NET Framework構建強大的附加組件,並提供豐富的用戶體驗。

+1

用於宏記錄的+1 – GvS 2010-05-27 12:25:45

+3

VBA宏記錄器中的LOL生成'高質量代碼'。我們只是說'宏記錄可以用來自動生成代碼',我們可以嗎? ;) – Lunatik 2010-05-27 14:49:16

+0

很好的答案。我會補充一點,如果你選擇VBA,也可以在C#上做一些工作,即使它只是小型項目。總有一天,.NET的部署'con'將會消失,你需要在學習曲線上取得領先。 – 2010-05-27 14:54:52

0

這在很大程度上取決於問題的複雜程度。如果這是一件簡單的事情,一個快速的VBA腳本可能就足夠了。但如果只有幾行代碼,我會選擇C#/ .NET。這些技術顯然是微軟的戰略方向,我發現你可以在技術層面上提高生產力,而不是用VBA做複雜的事情。

2

我想說

,如果你不使用任何其他技術,而不是Office套件 - 去VBA。

如果您打算處理諸如創建xml文件,使用數據庫連接,多線程等等。 - .NET更好。

此外它很好看在未來。你打算做一個開發人員的職業生涯(去.NET)嗎,或者你只是生產型的人,誰想要使大部分Office(去VBA)。

0

我建議使用VBA,如果你有幾乎沒有編程經驗,這就是爲什麼。

  • 您將得到快速結果。
  • 您將有一個較短的學習曲線。
  • 您可以使用宏記錄器來學習該語言。
  • 這個語言有很大的支持基礎。

就像史蒂夫羅曼在他的一本Word宏書中指出的那樣,VBA是開始學習編程的絕佳語言。不,你不會學習OOP,但是你可以在一個簡單的,非恐嚇的環境中學習程序編程,變量,類型,對象等等。

2

觀察它的一種方法是將它看作是與露營車進行露營和第五輪拖車和F-350進行露營的區別。

如果戴夫和貝蒂有一輛露營車(Excel),它配備了他們週末偶爾去海邊旅行所需的一切,還有一個「足夠好」的4缸發動機(VBA)那裏和後面。

但也許布巴希望被視爲一個嚴重的露營。他希望有更多的靈活性,可以隨時隨地去任何地方,一年中的任何時間,隨身攜帶任何他想要的任何東西,包括船和狗。所以他會購買F-350(Visual Studio),以及一個可以拉動露營者,船隻,滑雪板和馬匹的掛鉤,以及用於第五輪的牀上用品 - 以防萬一。他喜歡花時間在車庫裏設置一切,很好地協作。 C#/ .Net對所有這些都很好。每一種尺寸的絞車和製冷設備都可以滿足您的需求。

而且他們可以將露營車拖到當地車輪上。