ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: excelflower

使用VSTO移植VBA

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2010-12-23 11:30 | 显示全部楼层
本帖已被收录到知识树中,索引项:VSTO开发
原帖由 excelflower 于 2010-12-22 17:33 发表

呵呵,没事瞎鼓捣 多学点东西。


呵呵 我来论坛也是为了学习 初来咋到 跟你们混了~~
可以给我推荐一些VBA的教程么?有模拟随机过程的实例最好啦 我属于比较小白的那种 只了解最简单的代码~~

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-12-23 11:38 | 显示全部楼层
原帖由 umityxi 于 2010-12-23 11:30 发表


呵呵 我来论坛也是为了学习 初来咋到 跟你们混了~~
可以给我推荐一些VBA的教程么?有模拟随机过程的实例最好啦 我属于比较小白的那种 只了解最简单的代码~~

1、http://club.excelhome.net/viewth ... 9820&highlight=

2、http://club.excelhome.net/search ... mp;searchsubmit=yes

3、在本站搜索“随机”。

TA的精华主题

TA的得分主题

发表于 2010-12-23 15:22 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2010-12-24 15:52 | 显示全部楼层
我也来这里学习VSTO开发,准备做个小企业级项目

TA的精华主题

TA的得分主题

发表于 2010-12-24 15:54 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-12-24 20:32 | 显示全部楼层
原帖由 li_ryan 于 2010-12-24 15:52 发表
我也来这里学习VSTO开发,准备做个小企业级项目

这个可能需要更多的VS功能,对语言要求也提高了,VB2010、C#2010要会一种。

其实只要肯学,坚持下来就会有好的结果。祝你早日成功。

TA的精华主题

TA的得分主题

发表于 2010-12-24 21:58 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
VSTO 在这个论坛里 终于有点热气

我觉得太部分人 对VSTO的理解上

还是存在有多偏差...

这跟大环境有关系

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-12-24 23:35 | 显示全部楼层
原帖由 儒道佛 于 2010-12-24 21:58 发表
VSTO 在这个论坛里 终于有点热气

我觉得太部分人 对VSTO的理解上

还是存在有多偏差...

这跟大环境有关系


老师你好!

还有一个主要的原因是,以往VSTO(或者说VS)版本的功能对OFFICE开发支持得不好,对VBA代码移植支持得不够,尤其对我这样的非程序员来说,太复杂了!所以接触过VSTO1.0、VSTO2.0、VSTO3.0的非专业程序人员感觉不爽。这几天学习VSTO,在网上查了一些资料,多是以前版本的内容,很多人(包括专业程序员)抱怨VSTO不易容使用。使得VSTO很无趣。

随着VS2010的改进,VSTO也更加易用。我这个月刚刚接触VSTO,还处于文档级项目阶段,比较顺利地实现了一个多功能加载宏项目的代码移植,且运行速度没有明显变化。我感觉,VSTO的时代来临了。

有兴趣的可以看看这个介绍:http://blog.csdn.net/zardwish/archive/2010/03/18/5393346.aspx

下面是摘录内容:
  1. 支持Office :在程序员的眼中,Office不仅仅是一套非常流行的办公软件,更是一个成熟的开发平台。Office的应用是如此广泛,几乎深入到企业信息化和个人文档处理的每个角落。通过Office开发,可以帮助企业或者个人完成很多重复性的工作,规律性的工作甚至创造性的工作,正是因为如此,Office开发在软件开发中显得越来越重要,已经成为商业软件开发的一个重要领域。

  2.   为了支持Office开发,无论是从上层的二次开发语言VBA,还是底层的Office开发工具VSTO(Visual Studio Tools for Office),微软都给予了大力的支持。我们这里按下VBA不表,单说这Visual Studio 2010 CTP中新特性对Office开发的支持。

  3. 有道是“樱桃好吃树难栽,Office好用开发难”。做过Office开发的程序员常常会有这样的抱怨:
  4. “这个垃圾C#,连个可选参数都不支持!”
  5. “COM接口太复杂繁琐啦,我都快被折磨死了!”
  6. “告诉客户,他的机器上必须也安装Office 2003!Office 2007不支持!!!!!”

  7.   这是因为Office整个系统本身非常庞杂,Office对象模型难于全部掌握,开发语言对Office开发支持不够等等,这些都使得Office开发就像一头笨重的大象,虽然稳定,但是行动却有些迟缓,开发效率不高。

  8.   不过这些抱怨很快就会成为历史了。在Visual Studio 2010 CTP中,它提供了很多新的特性,来解决上述的这些Office开发中的主要问题,以更好地支持Office开发。当然,这些特性也可以应用在其他场合。这些新的特性包括:

  9. • 可选参数

  10.   Office提供的函数往往有很多参数,在大多数情况下,很多参数使用默认值就可以了,无需全部指定。但是在C# 3.0中,因为它不支持可选参数,导致每次调用函数都必须给定全部参数,代码繁琐而臃肿。C# 4.0通过对可选参数的支持,很好地解决了这一问题。

  11. • No-PIA部署

  12.   以前的Office开发,都要求目标机器(用户机器)上同样安装了Office,有时甚至对Office的版本还有特殊的要求。这给Office程序的部署带来了极大的困难:目标机器千差万别,有的安装了Office,有的没有安装,安装了Office的机器,Office版本又各不相同。在Visual Studio 2010中,因为有了No-PIA部署的支持,这些问题都得到了很好的解决。

  13.   有了上述特性的支持,Visual Studio 2010中Office开发开始变得简洁而自然。为了让大家有更加深刻的体会,下面我们以一个实际的例子,来看看这些新特性是如何更好地支持Office开发的。在这个例子中,我们将创建一个表示银行账号的类,然后用这个类的数据填充一个Excel表格,最后将这个表格嵌入到一个Word文档中。(这里需要说明的是,虽然有了No-PIA部署的支持,目标机器上无需安装Office,但是开发机器上还是需要安装Office的。)

  14. 现在,我们就可以轻松地把应用程序部署到目标机器上,而不用去考虑目标机器上是否安装了Office,Office的版本是多少等等繁琐的问题。

复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-12-24 23:51 | 显示全部楼层
原帖由 longming3 于 2010-12-22 20:02 发表
想请问一下,......另外可以理解为在云端执行吗?


是“云计算”吧。下面是《Visual Studio 2010与VS2008全面比较》摘录:
转自http://tech.it168.com/a2009/0204/264/000000264357_1.shtml

云计算

       虽然大家都还在“云里雾里”,但是毫无疑问,“云计算”已经来到了我们身边。在互联网时代,微软输给了Google,面对即将到来的“云计算”时代,微软没有理由再次错过机会。所以早在年初“云计算”的概念刚刚兴起的时候,就有传言微软将进军“云计算”,将旗下的软件业务纳入“云计算”。而现在,随着Visual Studio 2010 CTP和Windows Azure的发布,这一切成为了事实。“云计算”的基本原理,是通过使计算分布在大量的分布式计算机上,而非本地计算机或远程服务器中,企业数据中心的运行将更与互联网相似。这使得企业能够将资源切换到需要的应用上,根据需求访问计算机和存储系统。Windows Azure是一个托管服务套件,它包括虚拟计算,可扩展存储以及自动化服务管理系统等。这些工具将会用来为微软的服务提供支持,其中包括MSN,Xbox Live,以及Office Online等等,实现服务的网络化。
aa.jpg
图3 Windows Azure平台架构

       对于开发者而言,Windows Azure已经建立起一个简单而快速的系统,最重要的是它拥有着标准的模型,是我们步入“云计算”时代的捷径。开发者可以根据自己的需要选择第二层功能来使用,比如数据库,业务工具,甚至是第三方软件提供的功能。Windows Azure云计算平台为开发者提供了灵活性和可开发性,同时还需要考虑利用目前现有的技能、工具和技术,比如微软.NET框架和Visual Studio。使用Windows Azure Tools for Visual Studio,我们可以为Windows Azure创建,调试和部署服务和应用程序。Visual Studio 2010为Windows Azure提供了专门的项目模型,同时,我们也可以利于Visual Studio 2010对我们的服务和应用程序进行调试。另外,我们可以利用Visual Studio 2010将我们创建的服务打包,然后通过Windows Live Developer Portal部署到Windows Azure。

      总之,有了Visual Studio 2010的帮助,我们就可以拔得“云计算”的头筹。

  并行计算

      在以往的计算机发展历史中,硬件技术的发展总是给软件带来免费的性能提升,从386到586,从赛扬到奔腾,每次硬件的升级,都带来软件性能的大幅提升,而软件无需做任何变动,只需要坐等硬件升级就可以了。


图4 多核时代

       但是进入多核时代后,这种“免费的午餐”再也没有了。这其中最主要的原因就是当前的应用程序几乎都是针对一个运算核心而设计的,当硬件通过增加运算核心来提高性能时,由于受到其架构的影响,软件并不能充分地利于多个运算核心所带来的性能提升,甚至有的时候性能还有所下降。
       在这种情况下,开发者不得不改变应用程序的架构和开发方法,以应对这种多核的趋势,使得自己的软件可以充分利于硬件升级所带来的性能提升。面对这样的需求,Visual Studio 2010加大了对并行运算的支持。微软正在使得尽量大的范围内的开发者都能高效地进行并行计算的开发,不管他使用的是非托管代码还是.NET Framework。在Visual Studio 2010中,我们将看到:

  • Visual Studio IDE对并行计算开发的大量支持。比如,Visual Studio 2010的调试器知道代码的并行特性,并且能够在调试程序的不同执行单元的时候,表现应用程序的状态。
  • 非托管的C++库和编译器对并行计算的支持
  • .NET Framework 4.0对并行计算的大量支持,包括P-LINQ,并行语言语句等等

       另外,Visual Studio 2010还提供了一个“并行性能分析器”,它可以帮助我们分析应用程序的性能瓶颈,找到需要并行处理和可以进行并行处理的地方,并以图形化的形式表现出来。这样,“并行性能分析器”配合这Visual Studio 2010,我们就可以轻松地实现应用程序的并行化,再次吃上“免费的午餐”。

TA的精华主题

TA的得分主题

发表于 2010-12-28 07:33 | 显示全部楼层
VSTO 相比较 VBA  的优势(需求视图):

1、添加智能标记更方便
2、可以提供特定于文档的智能标记
3、在任务窗格上使用丰富的控件集
4、文档里储存数据以便可以离线使用,数据岛技术
5、可以对加载和卸载进行管理,采用shim技术
6、简单定制任务窗格(task pane)。
7、可视化定制Ribbon,还可以与XML方式互转
8、定制Outlook 2007窗体区域(Outlook form region)
9、远比VBA要强大的调试工具。
10、使用Data Sources窗口
11、使用丰富的智能感知功能。
12、使用专业开发语言编写托管代码
13、智能的自动更新和部署后决方案
14、避免宏病毒
15、为文档的对象增加数据绑定的能力
16、使用VSTO提供的扩展Office对象所公开的事件
17、更丰富更完善的事件支持能力
18、真正的线程支持(VB是伪线程,VBA是VB的子集)
19、与VBA语言的双向调用

VSTO 更大的用途:
VSTO只不过是OBA(Office Business Application)的一个组成部分,
基于SHAPEPOINT的开发,才是VSTO更重要的责任,也是VBA无法完成的

[ 本帖最后由 儒道佛 于 2010-12-28 07:39 编辑 ]

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-3-29 05:47 , Processed in 0.052270 second(s), 10 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表