Excel中VBA编程学习笔记(一)

1、注释及编码规则

注释:

  1. 单引号:可以位于句子结尾或者单独一行;
  2. Rem:单独一行

 

编码规则:

  1. 如果VB中的关键字是由多个英文字母组成,则系统自动将每个单词的首字母转换成大写字母,其余字母一律转换成小写字母。
  2. 对于用户自定义的变量名、过程名、函数名,VB以第一次定义的为准,以后输入的自动转换成首次的形式。
  3. 如果在同一行写多条语句,语句 间 要用冒号“:”隔开。例如:

Form1.Width  =  300 :  Form1.Caption = “VB!”

  1. 如果一条语句在一行写不下,可以分多行写,续航符为:一个空格后面跟一个下划线“_”。

例如:Address = “天津市河北工业大学”  +  _

                     “现代化教学中心”  +  _

                              “计算机技术基础教研室”

 

2、类模块

在Excel VBA中类模块就相当于一个类,类模块的名字就是类名。

下面为定义的一个类Class1,并且有些基本属性及一个初始化函数

 

Excel中VBA编程学习笔记(一)_第1张图片【例】

下面定义一个类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、设置窗体尺寸及位置

以下两种方式均可:

Excel中VBA编程学习笔记(一)_第2张图片

Excel中VBA编程学习笔记(一)_第3张图片

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,程序人生)