我想开发和自动化Office软件,如“Microsoft Excel 2007”和“Microsoft Word 2007”。但我不知道如何使用VBA或使用C#/ .Net Framework这样做。
使用VBA与.Net框架有什么好处?
我应该关注哪一个学习?
答案 0 :(得分:7)
在Office自动化方面,VBA和.NET都有其优点和缺点。以下是我脑海中的一些观点。该列表不完整,我的个人意见,所以随意添加/删除点。
.NET的优点是
.NET的缺点
VBA的优点是
VBA的缺点
两者都有共同点
当谈到学习和熟悉Office对象模型时,VBA肯定更容易学习,特别是因为它很容易记录宏,然后只是在VBA编辑器中玩。
最重要的是,VBA可能最适合应该易于部署的小型项目,而使用.NET,您可以构建功能强大的附加组件,利用完整的.NET Framework并提供丰富的用户体验。
答案 1 :(得分:2)
我会说
如果您不使用Office套件以外的任何其他技术,请转到VBA。
如果您打算处理诸如创建xml文件,使用数据库连接,多线程等事情 - .NET更好。
此外,未来还有好处。您是否打算以开发人员的身份开展事业(去.NET),或者您只是富有成效的人,他们希望创建大部分Office(转到VBA)。
答案 2 :(得分:2)
一种看待它的方法是将其视为与野营车露营和使用五轮拖车和F-350露营之间的区别。
如果Dave和Betty有一辆露营车(Excel),它会带来周末偶尔去海滩旅行所需的一切,以及一个“足够好”的4缸发动机(VBA)来让它们到达那里然后回来。
但也许布巴希望被视为一个严肃的露营者。他想要更灵活地在一年中的任何时间去任何他想去的地方,并且随身携带他想要的任何东西,包括船和狗。所以他会购买F-350(Visual Studio),以及一个可以拉动露营车,船只,滑翔伞和马匹以及五轮车床硬件的故障 - 以防万一。而且他喜欢花时间在车库里设置一切,以便很好地协同工作。 C#/ .Net非常适合所有人。您需要或想要的每个尺寸的绞车和制冷设备都适合。
他们可以将露营车拖到当地的车轮上。
答案 3 :(得分:0)
这在很大程度上取决于问题的复杂程度。如果这是一件简单的事情,快速的VBA脚本就足够了。但如果它只是几十行代码,我会选择C#/ .NET。这些技术显然是微软的战略方向,我发现你可以在技术堆栈中提高效率,而不是尝试使用VBA做复杂的事情。
答案 4 :(得分:0)
如果您几乎没有编程经验,我建议使用VBA,这就是原因。
正如史蒂夫罗马在他的一本Word Macro书中所指出的那样,VBA是一种优秀的语言,可以开始学习编程。不,你不会学习OOP,但你会在一个简单,无害的环境中学习程序编程,变量,类型,对象等等。