这里,如果想好好研究这个,可以看看VB一些基础书籍,程序就那回事。我简单看了《VB从入门到精通》后,开始写相应功能的。
二. 编写宏函数实现自编号
Visual Basic支持一个对象集合,该集合中的对象直接对应于Microsoft Word 97中的元素,并且通过用户界面,用户熟悉这些元素中的绝大多数。
例如,Document 对象代表了一个打开的文档,Bookmark对象代表了一个文档中的书签,而Selection对象则代表了在一个文档窗口窗格中的选定内容。在Word中,每一类元素-文档、表格、段落、书签、域等等-都可以用Visual Basic的对象来表示。要在Word中自动执行任务,可以使用这些对象的方法和属性。
下面简单讲解宏函数实现一些功能。
Sub test()
'
' test Macro
'
Dim sLineNum3 As String '行号(文字)
Dim nLineNum '行号(数值)
Dim i As Long
Title = "输入编号信息"
a1 = "请输入总编号开始号:"
b1 = InputBox(a1, Title)
End Sub
运行宏函数如下图所示:![[黑科技] WPS通过VB宏函数实现自编号功能](/imagecaealtourcom/Article/image/20170316/20170316034839_4827.jpg)
运行结果如下图所示,弹出界面输入:
![[黑科技] WPS通过VB宏函数实现自编号功能](/imagecaealtourcom/Article/image/20170316/20170316034839_6546.jpg)
下面是完整的代码,如下所示:
Sub test()
'
' test Macro
'
'定义变量
Dim sLineNum3 As String '行号(文字)
Dim nLineNum '行号(数值)
Dim sLineNum As String '行号(文字)
Dim sLineNum1 As String '行号(文字)
Dim sLineNum2 As String '行号(文字)
Dim selRge As Range
Dim i As Long
Dim x As Long
Dim y As Long
Dim k As Long
'输入行号对话框
Title = "输入编号信息"
a1 = "请输入总编号开始号:"
b1 = InputBox(a1, Title)
'Val函数将数字字符串换成数值
y = 200000 + Val(b1) - 1
i = 1
For k = 1 To 20
sLineNum1 = Str(i + y) '200001
sLineNum1 = LTrim(sLineNum1) '移除字符串最左边的空白字符
sLineNum1 = Right(sLineNum1, 5) '生成行号格式"00001"
'行号前加"/"
'sLineNum = "/" & b2 & sLineNum
'sLineNum2 = sLineNum1 + sLineNum
sLineNum2 = sLineNum1
'移动光标至当前行首 Selection.HomeKey wdLine
Selection.HomeKey Unit:=wdLine
'选择从光标至当前行首的内容 Selection.HomeKey wdLine, wdExtend
Selection.EndKey Unit:=wdLine, Extend:=wdExtend
sLineNum3 = Selection.Text
sLineNum3 = Left(sLineNum3, 3) '从左边获取每行前3个字符
If sLineNum3 = "%%%" Then '替换行号
Selection.Find.Execute FindText:="%%%", ReplaceWith:=sLineNum2
i = i + 1
End If
Selection.MoveDown Unit:=wdLine, Count:=1
Next k
End Sub
现在Word中内容如下所示:![[黑科技] WPS通过VB宏函数实现自编号功能](/imagecaealtourcom/Article/image/20170316/20170316034839_7640.jpg)
然后运行"宏",运行如下所示:
![[黑科技] WPS通过VB宏函数实现自编号功能](/imagecaealtourcom/Article/image/20170316/20170316034839_9515.jpg)
运行结果如下图所示:
![[黑科技] WPS通过VB宏函数实现自编号功能](/imagecaealtourcom/Article/image/20170316/20170316034840_0765.jpg)
下面补充一些代码,常见的操作Word宏的 函数。
参考:http://wangye.org/blog/archives/135/
http://blog.sina.com.cn/s/blog_5e646c1f0100u24w.html