2009-08-02 63 views
3

我的背景:主要是C編程。我有一些(最近......最近2個月)獲得了JAVA(新手)技能。我所有有限的經驗都是基於爲Linux開發的。新手:我應該學習C#,VB.Net或VBA/VB的Excel編程?

我想爲工作目的做一些優秀的編程。我的主要興趣是開始創建「儀表板」和excel表格中的圖表/報表,因爲我厭倦了手動更新多張表格。我很懶,所以我喜歡自動化,只要我可以:-)

這些「新」語言(對我來說)你會推薦學習哪一種?我也希望,如果/當我越來越熟悉Windows/MS Office環境時,我可以做更多「強大」的事情。

+0

非常感謝所有反饋傢伙!我認爲這個desicion製造商是Thorarin .... VBA可能不會這麼長時間,如果它被替換爲.net,那麼也許C#就是要走的路,因爲我可能能夠在未來。 再次......感謝所有偉大的反饋,非常有用! – NomadAlien 2009-08-02 11:40:37

回答

6

我個人比較喜歡C#作爲一種語言,但在發佈版本中,VB.NET是用於Office interop的更好語言。雖然C#4改善了這種情況lot,但具有命名參數和可選參數,參數僞造和COM PIA鏈接。

如果你可以使用C#4,那可能對你來說是最好的選擇 - 但是如果你被完全發佈的版本困住了,你可能想用VB.NET代替。

+0

嗨,喬恩。不確定你的意思是「完全發佈的版本」。我的要求是隻爲我自己使用,所以它不會通過公司或其他人得到支持。主要是爲了刮我自己的癢。 – NomadAlien 2009-08-02 10:36:16

+0

我的意思是「不在測試版本中的版本」:)如果您很高興使用Visual Studio 2010的beta 1(這有點慢但肯定可用),那麼您可能需要直接訪問C#。 – 2009-08-02 10:39:21

9

如果您的主要目標是優化您的Excel任務,那麼VBA是需要學習的語言。

好處是,如果你有任何編程背景,學習曲線是非常簡單的。

只要運行「錄製宏」,執行任務,然後查看生成的代碼。你有一個可以學習的實例。

+0

謝謝安德魯。我的主要「擔憂」是我立即着眼於創建結構/類來解決我的一些問題,然後將我帶到vb.net和c#。我在VBA中有一本初學者書,但是除了使用數組之外,沒有提到做這樣的事情。這是否需要從詭計或? – NomadAlien 2009-08-02 10:34:06

0

微軟計劃在未來的某個時候擺脫VBA。例如,已經從Mac版的Office 2008中刪除了支持。這種方式在Windows版本中呆了一段時間,但是沒有重大的新開發將會完成。

看到你擁有C和Java知識,並且考慮到你剛從新開始,我肯定會使用.NET。這只是您的時間更好的投資。

像Jon Skeet說的那樣,C#(4.0)可能是您最好的選擇如果您不介意使用測試版軟件。

1

由於您知道Java & C,所以C#應該是最容易學習的。如果這對你很重要,那麼C#技能的工作量也會增加。

2

如果你想深入研究excel自動化,我會堅持使用VBA。如果你對擴展知識更感興趣,我會選擇一種.NET語言,可能是VB.NET。

C#似乎更有聲望/受歡迎,但它也更接近你已經知道的東西。如果您使用VB學習.NET Framework,那麼您的C/Java語法意味着您可以閱讀C#。如果您改變了主意,它也可以更平滑地過渡到VBA。

1

所有給出的答案都是合理的,但我不確定它們是否現實。是的,微軟一直想擺脫VBA一段時間,我相信他們非常希望Visual Studio Tools for Office能夠起飛;是的,VB.NET和C#都支持所謂的類(使用面向對象的編程)比VBA好得多。儘管如此,世界使用VBA!特別是對於Excel解決方案,我想大約有99%的系統使用VBA。所以我個人會學習VBA,這得益於以下事實:

  1. 您可以記錄宏以查看如何執行操作;和
  2. 它內置於Excel(無需購買或安裝任何其他軟件)。

我已經寫了一個VBA tutorial online,我希望能幫到你,有很多示例代碼和圖表。讓我知道你對它的看法,如果你應該使用它。

PS看起來我的建議有些偏見,但事實並非如此。我們通過VSTO,C#和VB.NET進行培訓,並且我個人偏好的編程環境是Visual Studio(當我不得不現在恢復時,VBA讓我非常生氣)。然而,這是近20年的學習成果!對於一個新的程序員來說,VBA學習起來要簡單得多。