1、注釋及編碼規(guī)則
注釋:
單引號:可以位于句子結(jié)尾或者單獨一行;
Rem:單獨一行
編碼規(guī)則:
如果VB中的關(guān)鍵字是由多個英文字母組成,則系統(tǒng)自動將每個單詞的首字母轉(zhuǎn)換成大寫字母,其余字母一律轉(zhuǎn)換成小寫字母。
對于用戶自定義的變量名、過程名、函數(shù)名,VB以第一次定義的為準(zhǔn),以后輸入的自動轉(zhuǎn)換成首次的形式。
如果在同一行寫多條語句,語句 間 要用冒號“:”隔開。例如:
Form1.Width = 300 : Form1.Caption = “VB!”
如果一條語句在一行寫不下,可以分多行寫,續(xù)航符為:一個空格后面跟一個下劃線“_”。
例如:Address = “天津市河北工業(yè)大學(xué)” + _
“現(xiàn)代化教學(xué)中心” + _
“計算機(jī)技術(shù)基礎(chǔ)教研室”
2、類模塊
在Excel VBA中類模塊就相當(dāng)于一個類,類模塊的名字就是類名。
下面為定義的一個類Class1,并且有些基本屬性及一個初始化函數(shù)
【例】
下面定義一個類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的第一行背景色設(shè)置為紅色
End Sub
3、新建對象及常用對象
新建一個模塊。
Option Explicit
Sub a()
Dim ab As New Class1
Debug.Print ab.x
End Sub
不能使用NEW創(chuàng)建的對象
不能使用NEW創(chuàng)建
不允許的代碼例子
基本數(shù)據(jù)類型的變量
Dim X As New String
任何一般對象類型的變量
Dim X As New Control
任何特定控件類型的變量
Dim X As New ListBox
任何特定控件的變量
Dim X As New lstName
常用對象
對象名稱
代表事項
Application對象
代表整個Excel應(yīng)用程序
Debug對象
在運行時將輸出發(fā)送到立即窗口
Name對象
代表單元格區(qū)域的定義名稱
Dialog對象
代表內(nèi)置的Excel對話框
Range集合對象
代表某一單元格、某一行、某一列、某一選定區(qū)域
Window對象
代表一個窗口
Windows集合對象
代表Excel中所有Window對象的集合
Chart對象
工作薄中的圖標(biāo)
Charts集合對象
指定的或者活動的工作薄中所有的圖表的集合
Sheets集合對象
指定或活動工作薄中所有工作表的集合,Sheets集合可以包括Chart對象或WordSheet對象
WorkBook對象
代表Excel工作薄
WorkSheet對象
代表一張工作表
Shape對象
代表圖層中的對象,例如自選圖形、任意多邊形、OLE對象或圖片
AutoFIle對象
代表指定工作表的自動篩選
Filters集合對象
由多個Fileter對象組成的集合,這些對象代表自動篩選區(qū)域內(nèi)的所有的篩選
Filter對象
代表單個列的篩選
4、設(shè)置窗體尺寸及位置
以下兩種方式均可:
5、聲明變量及常量
變量聲明格式如下:
Dim|Private|Public|Static <變量1> as <類型1> [,<變量2> as <類型2> …..]
關(guān)鍵字
使用范圍
Dim
可以用在任何場合定義變量
Private
可以用于定義窗體級或模塊級,不能在過程中使用
Public
用于窗體級或者模塊級定義全局變量,不能在過程內(nèi)部使用
Static
只能在過程內(nèi)部使用,用于定義靜態(tài)的局部變量
注:沒有是上面的關(guān)鍵字來明確的變量叫做隱式變量,系統(tǒng)自動分配的數(shù)據(jù)類型為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 ("你輸入的內(nèi)容" & 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