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
————————————————
版权声明:本文为CSDN博主「数据之道」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/huzhizhewudi/article/details/84496719