Excel中VBA编程学习笔记(一)
1、注释及编码规则
注释:
- 单引号:可以位于句子结尾或者单独一行;
- Rem:单独一行
编码规则:
- 如果VB中的关键字是由多个英文字母组成,则系统自动将每个单词的首字母转换成大写字母,其余字母一律转换成小写字母。
- 对于用户自定义的变量名、过程名、函数名,VB以第一次定义的为准,以后输入的自动转换成首次的形式。
- 如果在同一行写多条语句,语句 间 要用冒号“:”隔开。例如:
Form1.Width = 300 : Form1.Caption = “VB!”
- 如果一条语句在一行写不下,可以分多行写,续航符为:一个空格后面跟一个下划线“_”。
例如:Address = “天津市河北工业大学” + _
“现代化教学中心” + _
“计算机技术基础教研室”
2、类模块
在Excel VBA中类模块就相当于一个类,类模块的名字就是类名。
下面为定义的一个类Class1,并且有些基本属性及一个初始化函数
【例】
下面定义一个类Class1,
Private name, sex As String
Private age As Integer
Public rng As Range
Sub class_initialize() '初始化
sex = "男"
age = 20
End Sub
Public Property Get GetName() As Variant
GetName = name
End Property
Public Property Get GetSex() As Variant
GetSex = sex
End Property
Public Property Get GetAge() As Integer
GetAge = age
End Property
Public Property Let SetName(newName As String)
name = newName
End Property
Public Property Let SetSex(newSex As String)
sex = newSex
End Property
Public Property Let SetAge(newAge As Integer)
age = newAge
End Property
Public Function GetInfo() As String
GetInfo = "姓名:" & name & ";性别:" & sex & ";年龄:" & age
End Function
Public Property Get maxNumer(num As Integer) As Integer
maxNumber = Application.WorksheetFunction.Max(num, age)
End Property
Public Property Set SetBckColor(myRng As Range)
myRng.Interior.ColorIndex = 3
End Property
新建一个过程
Sub test()
Set tmp = New Class1
Debug.Print tmp.GetAge() '20
tmp.SetName = "张三"
tmp.SetAge = 23
Debug.Print tmp.GetInfo() '姓名:张三;性别:男;年龄:23
Set tmp.SetBckColor = Sheet3.Rows(1) ‘将Sheet3的第一行背景色设置为红色
End Sub
3、新建对象及常用对象
新建一个模块。
Option Explicit
Sub a()
Dim ab As New Class1
Debug.Print ab.x
End Sub
不能使用NEW创建的对象
不能使用NEW创建 |
不允许的代码例子 |
基本数据类型的变量 |
Dim X As New String |
任何一般对象类型的变量 |
Dim X As New Control |
任何特定控件类型的变量 |
Dim X As New ListBox |
任何特定控件的变量 |
Dim X As New lstName |
常用对象
对象名称 |
代表事项 |
Application对象 |
代表整个Excel应用程序 |
Debug对象 |
在运行时将输出发送到立即窗口 |
Name对象 |
代表单元格区域的定义名称 |
Dialog对象 |
代表内置的Excel对话框 |
Range集合对象 |
代表某一单元格、某一行、某一列、某一选定区域 |
Window对象 |
代表一个窗口 |
Windows集合对象 |
代表Excel中所有Window对象的集合 |
Chart对象 |
工作薄中的图标 |
Charts集合对象 |
指定的或者活动的工作薄中所有的图表的集合 |
Sheets集合对象 |
指定或活动工作薄中所有工作表的集合,Sheets集合可以包括Chart对象或WordSheet对象 |
WorkBook对象 |
代表Excel工作薄 |
WorkSheet对象 |
代表一张工作表 |
Shape对象 |
代表图层中的对象,例如自选图形、任意多边形、OLE对象或图片 |
AutoFIle对象 |
代表指定工作表的自动筛选 |
Filters集合对象 |
由多个Fileter对象组成的集合,这些对象代表自动筛选区域内的所有的筛选 |
Filter对象 |
代表单个列的筛选 |
4、设置窗体尺寸及位置
以下两种方式均可:
|
|
5、声明变量及常量
变量声明格式如下:
Dim|Private|Public|Static <变量1> as <类型1> [,<变量2> as <类型2> …..]
关键字 |
使用范围 |
Dim |
可以用在任何场合定义变量 |
Private |
可以用于定义窗体级或模块级,不能在过程中使用 |
Public |
用于窗体级或者模块级定义全局变量,不能在过程内部使用 |
Static |
只能在过程内部使用,用于定义静态的局部变量 |
注:没有是上面的关键字来明确的变量叫做隐式变量,系统自动分配的数据类型为Variant,如DaysLeft=100.
Private name As String '声明全局变量
Private Sub A()
Dim M As Range '声明局部变量
Set M = Sheet1.Range("A1")
M.Value = InputBox("请输入:")
name = Sheet1.Range("A1").Value
MsgBox ("你输入的内容" & name)
End Sub
声明常量
Private Sub A()
Const pi As Integer = 3.1415926
Dim area As Double
area = pi * 2 * 2
Debug.Print ("面积为:" & area)
End Sub
Excel中VBA编程学习笔记(一)相关推荐
- Excel中VBA编程学习笔记(十一)--正则表达式
在VBA中使用正则表达式受限需要引用Microsoft VBScript Regular Expressions 5.5类库.在VBA界面,"工具"-->"引用&q ...
- Excel中VBA编程学习笔记(七)--窗口应用(WINDOW)
1.修改并获取当前窗口标题 Private Sub test() Windows(1).Caption = "My Excel" MsgBox ("当前窗口标题:&quo ...
- Excel中VBA编程学习笔记(十二)--自动筛选
Range.AutoFIlter方法可以进行自动筛选,语法结构如下: Range.AutoFilter(Field,Criteria1Operator,Criteria2,VIsibleDropDow ...
- Excel中VBA编程学习笔记(十)--单元格(cell)
1.单元格引用 引用 含义 Range("A1") 单元格A1 Range("A1:B2") A1到B2的单元格区域 Range("C5:D9,G9: ...
- 在EXCEL中VBA编程检验身份证号码有效性
*2022-12-05 改正代码中错别字,规范表述 *2022-11-30 1.增加了过程clearB()用来清除B1:Bx原有的出错说明,在过程examIdentityCard() 开头调用 2.修 ...
- Excel中VBA编程将大写人民币转阿拉伯数字
实际应用中大多数需求都是阿拉伯数字转 大写人民币 很少有反过来的需求. 可是,有轮子用它不香吗>.< Sub ChangeMoneyToNum() Dim reg As Object, a ...
- 网络通信编程学习笔记(六):socket编程实战
目录 一.wireshark抓包分析TCP协议 1.1.TCP协议的连接与断开简介 1.2.用wireshark抓取使用TCP协议传输的握手包 二.用Teardrop代码编写一个假包,并抓取 2.1. ...
- Excel与VBA编程中的常用代码
Excel与VBA编程中的常用代码 用过VB的人都应该知道如何声明变量,在VBA中声明变量和VB中是完全一样的! 使用Dim语句 Dim a as integer '声明A为整形变量 Dim a '声 ...
- python的messagebox的用法_Python GUI编程学习笔记之tkinter中messagebox、filedialog控件用法详解...
本文实例讲述了Python GUI编程学习笔记之tkinter中messagebox.filedialog控件用法.分享给大家供大家参考,具体如下: 相关内容: messagebox 介绍 使用 fi ...
最新文章
- mysql子查询是什么_mysql子查询
- Spring Web Flow 2.0 入门详解
- SAP Spartacus里的routerLink测试
- 解决android studio引用远程仓库下载慢(JCenter下载慢)
- 基于JAVA+SSH+MYSQL的社区医院远程挂号系统
- JS - Math对象
- 半波对称振子方向图_画好服装款式图的五个要点
- Vue实例和生命周期 1
- 【转】AndroidStudio升到最新版本(3.1.2)之后
- 2018-2019-1 20165201 实验四 外设驱动程序设计
- junit单元测试详解
- 全国计算机等级考试二级cpp试题,全国高校计算机等级考试(二级C)模拟试题全套.doc...
- 苹果电脑壁纸打包下载,macbook自带壁纸下载
- apache mediawiki 安装_mediawiki安装使用
- 怎么美化Typora的标题格式
- Machine learning system design - Error analysis
- 20、中断和动态时钟显示
- 微信小程序接入富文本编辑
- 欢迎报名2021年湖北省中小学电脑制作活动无人机编程赛项
- 文学随笔:《错过独白》