本港台开奖现场直播 j2开奖直播报码现场
当前位置: 新闻频道 > IT新闻 >

IT之家学院:用微软VS2017为Word开发加载项(2)

时间:2017-07-28 12:58来源:香港现场开奖 作者:www.wzatv.cc 点击:
这段代码的意思是,在加载项启动时(Word显示启动画面时,正是加载项启动的时候), 直播 ,获取当前运行的Word实例,并赋值给尚未实例化的接口App。

这段代码的意思是,在加载项启动时(Word显示启动画面时,正是加载项启动的时候),直播,获取当前运行的Word实例,并赋值给尚未实例化的接口App。这跟开发具体的功能有很大的关系,因为我们要通过这个接口来对Word文档进行操作。

好了,路已经铺好了,熟悉VBA的同学马上就可以自己玩儿去了,只要把VBA中的Application全部改成这里的App就可以了。不过还是来看简单的一个例子。

当我们从网页等地方复制文本时,有时会伴随着大量讨厌的空行,下面我们就通过代码来去除这些空行。

1.在Ribbon栏上放置一个按钮,更改名字为btnDeleteEmptyLine,标题为“删除空行”。然后在设计界面时双击它,进入代码编辑模式。

2.为了编写代码的便利,在首行先引入一个命名空间。

Imports Microsoft.Office.Interop.Word

3.然后编写如下代码,以实现具体的功能:

Private Sub btnDeleteEmptyLine_Click(sender As Object, e As RibbonControlEventArgs) Handles btnDeleteEmptyLine.Click

If App.Selection.Start = App.Selection.End Then App.ActiveDocument.Select()

With App.Selection.Find

.ClearFormatting()

.Text = "^p^p"

.MatchWildcards = False

.Forward = True

.Replacement.ClearFormatting()

.Replacement.Text = "^p"

.Execute(Replace:=WdReplace.wdReplaceAll)

End With

End Sub

3.单击VS工具栏上的启动按钮,片刻后Word就启动了,开始了调试过程。我们可以测试代码是否按预期工作。

这个例子其实是调用了Word的查找替换功能来实现删除空行的目的,用VBA也能完成。

那么VSTO相较于VBA,其优越性体现在哪里呢?我认为有以下几个方面:

1.VSTO可以用最新的VS以VB.net和C#等语言进行开发,而VBA基于老旧的VB6.0,不光是语法,连开发环境都几乎照搬,代码会写得很不舒服。

2.VBA是存储在文档中的,没有做到功能与文档的分离;而VSTO可以做到。而Office移动版会拒绝打开带有宏和VBA的文档,给人带来不便。

3.VSTO可以使用.net Framework提供的丰富的类库,轻松地实现五花八门的功能,相对来说,用VBA实现就比较麻烦。

4.与VB6.0一样,VBA对Unicode的支持不良,无法读取以UTF-8、UTF-16等编码的文本,atv,只支持以系统默认代码页(ANSI)编码的文本;而VSTO根本没有这种问题。

当然VBA相较于VSTO唯一的优点是轻便,由Office程序内置,而开发VSTO外接程序要安装VS。而综合来看,肯定是VSTO的潜力要优于VBA的。

(责任编辑:本港台直播)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
推荐内容