这篇文章主要是作为李老师《算法设计与分析》助教课程中,与她交流,学到的一些基础知识。它主要是讲述Word通过宏函数设置一些操作,比如在Word全文中替换一些符号;再如对Word上角表进行编号,如果删除中间某个值,运行宏函数自动编号;对Word中所有图片进行大小统一整合;文章竖着排版等操作。Word宏函数主要是基础VB编写的,希望这篇文章对你有所帮助~

一. WPS实现宏函数可用

Office中Word的宏函数直接可以使用,而WPS需要安装一个软件后才能使用。打开WPS Word如下图所示,宏是不能使用的。

这时需要下载VBA for WPS并安装才能使用。下载地址:
https://yun.baidu.com/share/link?shareid=2773182689&uk=892671164
下载安装如下图所示:

安装完后可以设置宏函数,如下图所示:

点击"宏",然后"创建"宏函数,如下图所示,取名为test。

创建后如下图所示,可以看到是VB代码进行编写的。

WPS需要保存为带宏函数的格式,如下图所示。

然后运行宏函数如下图所示,点击"运行"即可,如下图所示。

这里,如果想好好研究这个,可以看看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 LongTitle = "输入编号信息"a1 = "请输入总编号开始号:"b1 = InputBox(a1, Title)End Sub

运行宏函数如下图所示:

运行结果如下图所示,弹出界面输入:

下面是完整的代码,如下所示:

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 RangeDim i As LongDim x As LongDim y As LongDim k As Long'输入行号对话框Title = "输入编号信息"a1 = "请输入总编号开始号:"b1 = InputBox(a1, Title)'Val函数将数字字符串换成数值y = 200000 + Val(b1) - 1i = 1For k = 1 To 20sLineNum1 = Str(i + y)            '200001sLineNum1 = LTrim(sLineNum1)      '移除字符串最左边的空白字符sLineNum1 = Right(sLineNum1, 5)   '生成行号格式"00001"'行号前加"/"'sLineNum = "/" & b2 & sLineNum'sLineNum2 = sLineNum1 + sLineNumsLineNum2 = sLineNum1'移动光标至当前行首 Selection.HomeKey wdLineSelection.HomeKey Unit:=wdLine'选择从光标至当前行首的内容 Selection.HomeKey wdLine, wdExtendSelection.EndKey Unit:=wdLine, Extend:=wdExtendsLineNum3 = Selection.TextsLineNum3 = Left(sLineNum3, 3)    '从左边获取每行前3个字符If sLineNum3 = "%%%" Then         '替换行号Selection.Find.Execute FindText:="%%%", ReplaceWith:=sLineNum2i = i + 1End IfSelection.MoveDown Unit:=wdLine, Count:=1Next kEnd Sub

现在Word中内容如下所示:

然后运行"宏",运行如下所示:

运行结果如下图所示:

下面补充一些代码,常见的操作Word宏的 函数。
参考:http://wangye.org/blog/archives/135/
          http://blog.sina.com.cn/s/blog_5e646c1f0100u24w.html

Sub MoveToCurrentLineStart()' 移动光标至当前行首' Selection.HomeKey wdLineSelection.HomeKey unit:=wdLine
End Sub
Sub MoveToCurrentLineEnd()' 移动光标至当前行尾' Selection.EndKey wdLineSelection.EndKey unit:=wdLine
End Sub
Sub SelectToCurrentLineStart()' 选择从光标至当前行首的内容' Selection.HomeKey wdLine, wdExtendSelection.HomeKey unit:=wdLine, Extend:=wdExtend
End Sub
Sub SelectToCurrentLineEnd()' 选择从光标至当前行尾的内容' Selection.EndKey wdLine, wdExtendSelection.EndKey unit:=wdLine, Extend:=wdExtend
End Sub
Sub SelectCurrentLine()' 选择当前行' Selection.HomeKey wdLine' Selection.EndKey wdLine, wdExtendSelection.HomeKey unit:=wdLineSelection.EndKey unit:=wdLine, Extend:=wdExtend
End Sub
Sub MoveToDocStart()' 移动光标至文档开始' Selection.HomeKey wdStorySelection.HomeKey unit:=wdStory
End Sub
Sub MoveToDocEnd()' 移动光标至文档结尾' Selection.EndKey wdStorySelection.EndKey unit:=wdStory
End Sub
Sub SelectToDocStart()' 选择从光标至文档开始的内容' Selection.HomeKey wdStory, wdExtendSelection.HomeKey unit:=wdStory, Extend:=wdExtend
End Sub
Sub SelectToDocEnd()' 选择从光标至文档结尾的内容' Selection.EndKey wdStory, wdExtendSelection.EndKey unit:=wdStory, Extend:=wdExtend
End Sub
Sub SelectDocAll()' 选择文档全部内容(从WholeStory可猜出Story应是当前文档的意思)Selection.WholeStory
End Sub
Sub MoveToCurrentParagraphStart()' 移动光标至当前段落的开始' Selection.MoveUp wdParagraphSelection.MoveUp unit:=wdParagraph
End Sub
Sub MoveToCurrentParagraphEnd()' 移动光标至当前段落的结尾' Selection.MoveDown wdParagraphSelection.MoveDown unit:=wdParagraph
End Sub
Sub SelectToCurrentParagraphStart()' 选择从光标至当前段落开始的内容' Selection.MoveUp wdParagraph, wdExtendSelection.MoveUp unit:=wdParagraph, Extend:=wdExtend
End Sub
Sub SelectToCurrentParagraphEnd()' 选择从光标至当前段落结尾的内容' Selection.MoveDown wdParagraph, wdExtendSelection.MoveDown unit:=wdParagraph, Extend:=wdExtend
End Sub
Sub SelectCurrentParagraph()' 选择光标所在段落的内容' Selection.MoveUp wdParagraph' Selection.MoveDown wdParagraph, wdExtendSelection.MoveUp unit:=wdParagraphSelection.MoveDown unit:=wdParagraph, Extend:=wdExtend
End Sub
Sub DisplaySelectionStartAndEnd()'显示选择区的开始与结束的位置,注意:文档第1个字符的位置是0MsgBox ("第" & Selection.Start & "个字符至第" & Selection.End & "个字符")
End Sub
Sub DeleteCurrentLine()' 删除当前行' Selection.HomeKey wdLine' Selection.EndKey wdLine, wdExtendSelection.HomeKey unit:=wdLineSelection.EndKey unit:=wdLine, Extend:=wdExtendSelection.Delete
End Sub
Sub DeleteCurrentParagraph()' 删除当前段落' Selection.MoveUp wdParagraph' Selection.MoveDown wdParagraph, wdExtendSelection.MoveUp unit:=wdParagraphSelection.MoveDown unit:=wdParagraph, Extend:=wdExtendSelection.Delete
End Sub

最后希望文章对你有所帮助,如果文章中存在错误或不足之处,还请海涵~后面肯恩会补充一些实用的功能, 娜美人生,精彩人生。
      (By:Eastmount 2017-03-15 中午1点    http://blog.csdn.net/eastmount/ )

[黑科技] WPS通过VB宏函数实现自编号功能相关推荐

  1. wps通过vb宏来查看文档中使用的所有字体

    wps通过vb宏来查看文档中使用的所有字体 目录 wps通过vb宏来查看文档中使用的所有字体 一.打开WPS 二.编辑宏 三.运行宏 一.打开WPS 按步骤打开WPS→开发工具→VB宏 二.编辑宏 在 ...

  2. 4款实用的黑科技软件,白嫖党最爱,功能强大到离谱

    闲话少说,直上干货. 1.Dism++ 这是一款国人研发,免费又好用的电脑优化工具,备受全球电脑爱好者追捧,它解决了系统安装与维护两大痛点问题--自定义设置与优化,相当于给电脑请了免费"保姆 ...

  3. 黑客黑科技?Python代码让android手机实现监控功能

    欢迎订阅公众号:Python从程序猿到程序员,,,,,或者骚扰本人:154725.1666. 百度搜索"qpython",点击qpython官网. <QPython>是 ...

  4. SAS学习笔记44 宏函数

    类SAS函数的宏函数 该部分函数共5个,其无论是名字.语法.功能都与SAS函数类似,只是在函数名前多了一个"%".这5个宏函数分别是: %INDEX %LENGTH %SCAN % ...

  5. 05c语言——宏定义、带参宏、带参宏函数

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一.宏定义 1.使用规则 2.注意 二.带参宏 1.定义 2.注意 三.带参函数 1.带参函数的宏与带参宏的区别 2.带参宏 ...

  6. AI黑科技 | 宏碁研发智能穿戴设备:智能佛珠

    你好,欢迎走进本期AI黑科技栏目.请问最近工作顺利吗?家庭幸福吗?生活美满吗?宏碁刚发布的智能佛珠要不要了解一下? 是的,你没走错片场,作为老牌电脑厂商的宏碁( ACER ),的确发布了这样一款产品- ...

  7. R语言入门——你不知到的哪些黑科技(这里面的函数你用过一个算我输)

    文档再短再要有目录不是 00引言 1.() 2."运算符号"(,) 3.总结 00引言 在R语言入门中你会遇到各种处理数据建立模型的函数,今天介绍一下在平时的编程中一直被大家忽略的 ...

  8. (弃更)一些黑科技和技巧

    有疑问或错误尽管评论!! 下面以C++为准. 黑科技 1.读入优化 在做题时,读入量较大的时候,便可以用来卡常. 据说GDOI有一题卡读入,题目直接给了学生读入优化. Pascal选手应该很无奈--就 ...

  9. (持续更新)一些黑科技和技巧

    有疑问或错误尽管评论!! 下面以C++为准. 黑科技 1.读入优化 在做题时,读入量较大的时候,便可以用来卡常. 据说GDOI有一题卡读入,题目直接给了学生读入优化. Pascal选手应该很无奈--就 ...

最新文章

  1. 【微信小程序之画布】一:canvas组件
  2. uniny 物体运动到一个点停止_隐藏的几何:各类随机物体中的深层联系
  3. 如何看待亚马逊 AI 李沐团队大批人员离职?
  4. 简单php不用mysql_简单的PHP / MySQL不工作
  5. 哌甲酯药行业调研报告 - 市场现状分析与发展前景预测
  6. IS-IS详解(十九)——IS-IS 与IPv6
  7. Unity3d之MonoBehaviour的可重写函数整理
  8. 5分钟学会双拼 双拼输入法 最简单的双拼入门教学 图文教程
  9. Peewee的基本使用
  10. freeipa证书相关的一些命令
  11. 张曦予巴黎时装周儿童单元T台走秀演绎童真风采
  12. 字符串相乘——大整数乘法
  13. 视频显示输出接口总结
  14. 数据结构(王道版本,主讲人:闲鱼学长)P7-P18
  15. Autodesk VRED Design2022安装教程
  16. 陶瓷电容(MLCC),你真的了解吗?
  17. 软件测试电视机怎么测试,现在不怕被骗!教你终极电视测试技巧
  18. CVE-2022-0391
  19. mc 服务器显示启动失败,求助 关于mc启动失败的问题
  20. python打印dict,Python之print字典

热门文章

  1. matlab里如何输入圆周,如何在MATLAB中打印小圆圈?
  2. 解决 FileNotFoundError: [WinError 2] 系统找不到指定的文件
  3. MFC 修改字体的颜色
  4. java知识点博客园_Java知识点总结1
  5. error LINK:1181 无法打开lib文件
  6. Erigon 最新执行客户端安装教程
  7. 深度学习第四周Key Concepts on Deep Neural Networks习题整理
  8. 记录eprime-eyelink小白自学解决的各种问题
  9. 策略评价1:根据交易信号Signal,1.提取交易记录,2.绝对收益和相对收益,3.交易与不交易对比,4.收盘价最大回撤,5.资金最大回撤。6.可视化图形回测。
  10. 视频加密选择在线加密还是软件加密好?