vba编程
VBA 宏编程
相关文件在连接 https://download.****.net/download/wei198621/10589098
一 前期安装条件
- 解压13+Vba6.3+for+WPS+.zip 文件夹内容,执行安装
- 将后缀从pptx改为pptm,这样可以运行宏
- 错误 用户定义类型未定义 ADODB.Connection
执行的时候可能会提示如下, 用户定义类型未定义 ADODB.Connection 需要添加引用,我机器上面安装的office版本比较多,选一个 Microsfot ActiveX Data Objects 版本 就可以
工具--》引用
二 编辑界面
打开 开发工具 -》 宏 -》
选择编辑
插入 模块 定义要工作的PPT页码
如示例中定义了再幻灯片 2 3 中将会执行宏
插入--》类模块
SqlString 类模块内容
OracleHelper类模块内容
宏启用
默认应该是灰色的,需要安装宏工具,安装如下工具
打开VBA方法
ALT+F11 == 菜单 工具 宏 == (放在某个sheet名上面)右键 查看代码 == excel visual basic
三 核心函数介绍
最简单的宏写法
https://jingyan.baidu.com/article/4ae03de32663953efe9e6b47.html
getTable
getTable(ActivePresentation.Slides(1), 1) '(从1开始)
ActivePresentation.Slides(1) ,Slide 是幻灯片,从1开始,第一个就是1 ,不是0
Private Function getTable(slide As slide, index As Integer)
Dim sh As Integer
Dim ei As Integer
ei = 0
Rem 获取第2页
With slide
For sh = 1 To .Shapes.count
If .Shapes(sh).HasTable Then
ei = ei + 1
If ei = index Then
Set getTable = .Shapes(sh).table
Exit For
End If
End If
Next
End With
End Function
getColIndex
Rem key:7月 table:指定table rowIndex:指定行 获取指定列索引
Private Function getColIndex(key As String, table As table, rowIndex As Integer)
Dim colCount As Integer
colCount = table.Columns.count
Dim i As Integer
For i = 1 To colCount
If Trim(table.Rows(rowIndex).Cells(i).Shape.TextFrame.TextRange.text) = key Then
Let getColIndex = i
Exit For
End If
Next
End Function
四 真实执行
10.10.128.143:15389 上面有徐磊安装好的环境,将pptm文件放到这个上面,稍微修改 ,运行就可以了
大概执行6 7 分钟,P11页的SQL比较大
五 小知识点
1: 调试快捷键 : F8 单步执行
2: Debug.Print :打印变量等内容
3: xlsm 后缀 pptm 后缀 的可以进行VBA 编程
由于VBA或者宏代码有一定的危害性,为了提高安全意识,凡是以XLSX为后缀名的文件都不能含有宏代码,需要将后缀保存为XLSM