Wps二次开发——VBA入门教程
VBA是什么:
Visual Basic for Applications(VBA)是一种Visual Basic的一种宏语言,主要能用来扩展Windows的应用程式功能,特别是Microsoft Office 和WPS Office软件 。
VBA和VB的区别:
1. VB是设计用于创建标准的应用程序,而VBA是使已有的应用程序(WPS等)自动化。
2. VB具有自己的开发环境,而VBA必须寄生于已有的应用程序。
3. 要运行VB开发的应用程序,用户不必安装VB,因为VB开发出的应用程序是可执行文件(*.EXE),而VBA开发的程序必须依赖于它的父应用程序。
VBA安装及使用:
自带VBA版本的wps无需再安装
可从网上下载VBA安装包(大概23M)推荐下载地址:http://ishare.iask.sina.com.cn/f/9791885.html?from=like
安装完成后打开wps文字按alt+f11打开VBA编辑窗口,或如下图点击按钮弹出

VBA编辑窗口:
什么是宏:
宏我们可以看做为一个程序过程,一系列可执行的VBA语句。
下面介绍如何创建一个简单的宏:
a. 打开VBA编辑窗口
b. 在代码区输入如下代码
复制内容到剪贴板
代码:
Sub test() 'sub为宏语句开始标记 test为自定义宏名称
Dim st as String 'Dim声明字符变量
St= "这是我的第一个宏" '为变量赋值
Msgbox St '过程的具体语句
End Sub '宏结束语句
c. 光标移到代码上按F5或点击运行宏按钮 (按F8可以逐语句运行)
操作参考如下:

WPS, ET, WPP所包含的接口简要介绍:
WPS:指WPS Office中的文字组件,对应MSO中的Word组件,WPS中包含的接口主要是用来操作文档的一组API,可以通过API对文档的任何细节元素(文档内容、段落、格式、域、标签、表格图片、工具栏等等)进行操作,完全兼容MS-WORD的API接口。
ET:指WPS Office中的电子表格组件,对应MSO中的Excel组件,ET中包含的接口主要是用来操作电子表格的一组API,可以通过API对表格的任何细节元素(单元格、公式、数组、数据筛选、外部数据链接等等)进行操作,完全兼容MS-EXCEL的API接口。
WPP:指WPS Office中的演示组件,对用MSO中的PowerPoint组件,WPP中包含的接口主要是用来操作演示文稿的一组API,可以通过API对演示文稿的任何细节元素(幻灯片、模板、动画、播放设置等等)进行操作,完全兼容MS-PowerPoint的API接口
Wps文字常用的接口
接口名称 | 描述 |
Application | 该对象代表 WPS 应用程序,包含最高级对象的属性和方法 |
Bookmark | 代表单个书签 |
Bookmarks | 由 Bookmark 对象所组成的集合,该集合中的对象代表指定的选定内容、区域或文档中的书签 |
Cell | 代表单个表格的单元格 |
Comment | 代表单个批注 |
Dictionary | 代表一个自定义词典对象 |
Document | 该对象代表 WPS 的一篇文档 |
InlineShape | 该对象包含单个嵌入式图形 |
Range | Range 对象代表文档中的一个连续范围 |
Selection | 该对象代表窗口或窗格中的当前所选内容 |
Tables | 该对象是由文档中的所有表格组成的集合 |
wps实例应用
实现效果:创建一个工具栏,添加3个按钮名称分别为“文字”,“表格”,“图片”,并实现单击后在文档中添加文字,表格,图片功能。
代码如下:(黄色突出显示为涉及较为重要的对象)
复制内容到剪贴板
代码:
Sub test()
'声明一个工具栏对象
Dim comb As CommandBar
'添加一个新的工具栏并命名为“我的工具栏”
Set comb = Application.CommandBars.Add("我的工具栏")
'添加一个按钮 名字为“文字” 指定单击时调用宏“InsertText”
With comb.Controls.Add(KsoControlType.ksoControlButton)
.Caption = "文字"
.OnAction = "InsertText"
End With
'添加一个按钮 名字为“图片” 指定单击时调用宏“InsertImg”
With comb.Controls.Add(KsoControlType.ksoControlButton)
.Caption = "图片"
.OnAction = "InsertImg"
End With
'添加一个按钮 名字为“表格” 指定单击时调用宏“InsertTable”
With comb.Controls.Add(KsoControlType.ksoControlButton)
.Caption = "表格"
.OnAction = "InsertTable"
End With
End Sub
Sub InsertText()
'写入文本
Selection.TypeText "Kingsoft Office 2009"
'居中对齐
Selection.ParagraphFormat.Alignment = wpsAlignParagraphCenter
'新段落
Selection.TypeParagraph
End Sub
Sub InsertTable()
'插入表格
Dim mytable As Table
'指定表格的行列数
Set mytable = Selection.Tables.Add(Selection.Range, 3, 3)
End Sub
Sub InsertImg()
'插入图片
Dim myimg As InlineShape
'图片路径为与文档同一目录下名字为"logo.png"
Set myimg = Selection.InlineShapes.AddPicture(ThisDocument.Path & "logo.png")
End Sub
ET常用的接口
接口名称 | 描述 |
Application | 该对象代表 ET 应用程序。包含可返回最高级对象的属性和方法 |
Chart | 代表工作簿中的图表。该图表既可为嵌入图表(包含在 ChartObject 中),也可为一个单独的图表工作表 |
Comment | 代表一条单元格批注 |
Filter | 代表单列的筛选 |
Interior | 代表对象的内部 |
Range | 代表某一单元格、某一行、某一列、某一选定区域(该区域可包含一个或若干连续单元格区域),或者某一三维区域 |
Shape | 该对象代表图形,可使用 ShapeRange 对象对该对象进行操作 |
Sheets | 该对象代表工作簿或当前活动工作簿中所有工作表的集合 |
Workbook | 代表 WPS表格 工作簿。Workbook 对象是 Workbooks 集合的成员 |
Window | 该对象代表 ET 应用程序中的窗口对象 |
ET实例应用
实现效果:在表格1中填写相应的数据后,点击录入按钮,把数据写到表格2中
如下图:
表格1
表格2:
实现上面的效果我们可以先在代码区定义2个宏,代码如下:
复制内容到剪贴板
代码:
Sub InsertDada()
'声明一个数组对象
Dim arr(1 To 7)
'为数组赋值
arr(1) = Sheet1.Range("b2").Value '把b2单元格的值赋给数组的第一个元素
arr(2) = Sheet1.Range("b3").Value
arr(3) = Sheet1.Range("b4").Value
arr(4) = Sheet1.Range("b5").Value
arr(5) = Sheet1.Range("b6").Value
arr(6) = Sheet1.Range("b7").Value
arr(7) = Sheet1.Range("b8").Value
'在表格2中添加数据 UsedRange.Rows.Count为用户使用到的行数
Sheet2.Rows(Sheet2.UsedRange.Rows.Count + 1).Value = arr
'清空录入后的数据
Sheet1.Range("b2:b8").Value = ""
'完成录入提示框
MsgBox "录入成功!"
End Sub
复制内容到剪贴板
代码:
Sub ClearData()
'重置输入文本
Sheet1.Range("b2:b8").Value = ""
End Sub
然后为录入和重置按钮指定宏
右击按钮——》选中指定宏 如图:
然后选上对应的宏,再确定
Wpp常用接口
接口名称 | 描述 |
ActionSetting | ActionSetting 对象表示 WPS 演示的动作设置,包括对象动作设置和演示文字动作设置 |
AnimationBehavior | 代表动画效果的动作、主动画序列或交互式动画序列 |
AnimationPoint | 代表动画动作的单个动画点。AnimationPoint 对象是 AnimationPoints 集合的成员。AnimationPoints 集合包含动画动作的所有动画点 |
AnimationSettings | AnimationSettings对象代表幻灯片放映时应用于指定形状的动画的特殊效果 |
Application | 演示应用程序 |
Slide | Slide 对象表示 WPP 应用程序中的一张幻灯片 |
DocumentWindow | 代表一个文档窗口 |
Effect | 代表有关幻灯片动画的计时信息 |
FillFormat | 该对象代表一个图形的填充格式。一个图形可以具有渐变、纹理、图案、图片或半透明填充 |
Selection | 代表指定文档窗口中的选中对象 |
Shape | 该对象代表图形,可使用 ShapeRange 对象对该对象进行操作 |
Wpp实例应用
以下实例为按顺序给幻灯片添加背景图片
代码如下:
复制内容到剪贴板
代码:
Sub InsertPic()
'声明一个整形变量
Dim i As Integer
'循环文档中的所有幻灯片
For i = 1 To ActivePresentation.Slides.Count
'选中当前的幻灯片
ActivePresentation.Slides(i).Select
With ActiveWindow.Selection.SlideRange
'指定幻灯片区域不继承母版背景
.FollowMasterBackground = ksoFalse
'设置背景图片
.Background.Fill.UserPicture "F:\\img\\bg" & i & ".jpg"
End With
Next
End Sub
按F5运行此宏
运行效果如下图:
图片路径位置和名字:
|