一 VBE编辑器
1.0VBE也有好多菜单
- 值得去仔细研究一遍:开始我是这么想的,看了看,实际上,初期重视下 “视图” 这个菜单下的内容就行了
- 其他的好像都是ms的通用的菜单模板的感觉。
1.2 excel里 VBE相关的各种层级
VBA的对象层级和引用
- 语法: 工程.模块.过程(或函数).属性/方法
- 如果是工程,还需要先设置引用关系?
- VBE (编辑器-对应EXCEL程序 ) :包含多个工程
- 类模块,可以跨工程用?
- 工程名 (一个完整的项目:1个EXCEL表): 包含多个sheet,1个workbook, 多个模块,多个窗体
- 模块 (workbook下的模块,独立于worksheet):包含很多过程,函数
- 过程 / 函数
二 视图可以打开的各种窗口
- 视图 菜单下 可以打开各种窗口,工具箱等
2.1 VBE的6个视窗---都可以从视图菜单打开
VBE的窗口界面大约有六个窗口,他们调出和关闭都可以通过视图找到
-
工程资源管理器:
- 显示当前VBA工程中包含的所有部件(对象工作簿,工作表,窗体,模块,类模块等)及所有引用的工程;
- 工程里的对象:工作簿,工作表*N,工作簿*1,模块*N,类模块*?
- 工程里的各种材料
- 一个EXCEL工作簿文件就是一个工程的主要部分
- 实际上一个工程大于一个工作簿
-
代码窗口:
- 显示和编辑VBA程序代码,这个是最常用的代码窗口;
- 可以认为是施工的图纸
-
属性窗口:
- 当前激活的工程部件的主要属性;
- 详细属性,说明书
比如,worksheet的visible属性,这样设置为2--xlsheetVeryHidden的无法被取消隐藏
-
监视窗口:
- 显示被监视的指定表达式的值。
- 可以右键选择 要监视的变量
-
立即窗口:
- 执行单行的语句或者显示debug.print所打印的表达式的值。
- 测试,试验,反馈
-
本地窗口:
- 显示当前运行过程中所包含变量的值
- 但代码执行结束会自动清除显示
- 所以本地窗口像查看的话,需要加断点
2.2 其他几个窗口
-
对象窗口
- 还有些 对象浏览器,可以查看所有对象,还有用户窗体菜单等等?!
-
(用户窗体的)工具箱
- 打开用户窗体的工具栏
2.2 VBE的模块可以导入和导出为VBS脚本文件
VBS文件模块导入导出
2.3 VBE窗口的对象选择框和过程事件选择框
- 左边是 :对象选择框
- 右边是: 过程事件选择框
- 过程分隔线---不同的过程/函数之间会进行分割
- 边界标识
三 VBE里的工程,EXCEL文件等基本概念
3.1 VBE相关的各种层级
- VBE : VB编辑器(包含多个工程)
- Application :EXCEL,我认为VBE还可以编辑其他软件,如word?
- 工程名 :一个工程就是一个EXCEL表
- 工程内容:对象,模块 ,用户窗体等
3.2 VBA的对象层级和引用
- 语法也是: 工程.模块.过程(或函数)
- 如果是工程,还需要先设置引用关系?
- excel的跨表 和 跨 sheet引用格式,
- 跨表引用 []
- 跨sheet引用 !
- =[121.xlsx]Sheet1!$A$1
四 工程窗口
- 显示工程内的各种资源:工作簿,工作表,模块,类模块,用户窗体等
- 工作簿
- 工作表
- 模块: 模块可以在同一个表内的,多个sheet之间共用
- 类模块:类模块可以在多个 EXCEL表内共用的
- 用户窗体
-
4.1 工程窗口内容
- 但是对象只能到sheet层? Range cells呢?
- 模块和类模型,就是模板?类?
- 用户窗体
4.1 模块是通用的脚本,对象脚本是特殊的
- 模块,我认为其实也就相当于一个脚本文件
- 模块,就是存好的代码脚本,文件等,并且是通用的,可以重复调用
- 而对象默认附带的脚本,则是和对象绑定的
五 属性窗口
- 显示对象的详细属性,并且支持UI可视化修改
- 如果是文件夹层次,一般没有属性
- 如果是文件层次,一般会有属性
有不少很好玩的属性,比如针对 sheet的
- visible
- -1 显示
- 0 隐藏
- 2 隐藏且不能取消
六 代码窗口
6.1 代码窗口构成
- 对象列表框:没有选中显示通用,有对象的脚本,可以选不同的对象
- 脚本列表框:这个对象可选的事件!!
- 切换 过程视图 完整全模块视图
- 边界标识条—用于调试的,加断点
- 左边是 :对象选择框
- 右边是: 过程事件选择框
6.2 为什么除了模块,还需要对象脚本?
- 可以在每个对象下,直接加脚本
- 每个对象下,默认关联着一个脚本,这些脚本是专用的,不是模块化通用的
- VBE编辑器,每个对象都有一个自己的独特脚本,还可以加无限的模块通用脚本。
- VBE的窗体对象,还支持绑定在窗体层次的,更细的对象绑定脚本,比如一个小控件,小button
7 用户窗体—加内容
- 工具箱---也可以点 视图调出来
8 怎么把代码保存在 personal.xlsb 里?
参考文档 http://www.360doc.com/content/16/0901/23/27686207_587650572.shtml
8.1 怎么弄出来?
- 录制宏的菜单
- 保存时可以选择 个人宏工作簿
- 然后,实际随便录个宏
- 然后就能再工程窗口看到这个 personal.xls了
8.2 作用??
- 这个文件,是在excel内的,跨越多个工程。
- 让所有电脑里都可以用这些 vba 已经写好的脚本?
- VBA可以放在通用地方,所有EXCEL都可以用
九 其他
变量声明:模块级的变量声明等
删除前导出模块为单独的bas文件
宏的使用相对引用问题,录制时,可以使得是相对的,这样更有适用性?
这里面还有不少有用的东西