VBA入門整理

什麼是VBA

VBA(Visual Basic for Application) 是Visual Basic的一種宏語言,主要用來擴展MicroSoft Office Excel軟件的應用程序功能。

相關資料

VBA學習交流網址:http://www.excelhome.net/

《excel_VBA基礎入門》:

https://vdisk.weibo.com/s/dE3D00COBMN#_loginLayer_1576143430619

VBA有多強大:https://www.zhihu.com/question/318065326/answer/799460430

詳細的VBA基本操作已經在大神編寫的《excel_VBA基礎入門》中說明的非常詳細了,下面就只簡單講解一下常用的相關操作和功能的實現。

常用快捷鍵

Alt + F8 打開宏菜單

在這裏插入圖片描述

Alf + F11 打開VBE(VBA編輯器)

在這裏插入圖片描述

打開“開發工具”菜單

文件 -> 選項

在這裏插入圖片描述

自定義功能區 -> 勾選“開發工具” -> 確定

在這裏插入圖片描述在這裏插入圖片描述

第一個VBA編程

開發工具 -> 插入 -> 按鈕

在這裏插入圖片描述

拖拽即可繪製一個按鈕,彈出宏菜單窗口,可以修改宏命名,確定

在這裏插入圖片描述

右鍵按鈕 -> 指定宏

在這裏插入圖片描述

點擊新建,打開VBE(VBA編輯器)

在這裏插入圖片描述

輸入如下內容

MsgBox "您點擊了按鈕"

在這裏插入圖片描述

然後去Excel中點擊按鈕,效果如下:

在這裏插入圖片描述

恭喜,您已完成了您的第一個VBA編程

VBA常用語法

在創建按鈕後,輸入的

MsgBox "您點擊了按鈕"

就是VBA的其中一個語法——彈出提示框語法

下面我們將介紹VBA的其他常用語法

數據類型

**數據類型 ** 存儲空間大小 範圍
Byte 1 個字節 0 到 255
Boolean 2 個字節 True 或 False
Integer 2 個字節 -32,768 到 32,767
Long 4 個字節 -2,147,483,648 到 2,147,483,647
Single (單精度浮點型) 4 個字節 負數時從 -3.402823E38 到 -1.401298E-45;正數時從 1.401298E-45 到 3.402823E38
Double (雙精度浮點型) 8 個字節 負數時從 -1.79769313486232E308到-4.94065645841247E-324;正數時從4.94065645841247E-324 到 1.79769313486232E308
Currency (變比整型) 8 個字節 從 -922,337,203,685,477.5808 到 922,337,203,685,477.5807
Decimal 14 個字節 非常大
Date 8 個字節 100 年 1 月 1 日 到 9999 年 12 月 31 日
Object 4 個字節 任何 Object 引用
String (變長) 10 字節加字符串長度 0 到大約 20 億
String(定長) 字符串長度 1 到大約 65,400
Variant(數字) 16 個字節 任何數字值,最大可達 Double 的範圍
Variant(字符) 22 個字節加字符串長度 與變長 String 有相同的範圍
用戶自定義 所有元素所需數目 每個元素的範圍與它本身的數據類型的範圍相同。

聲明變量

Dim 變量名 As 數據類型
修飾符 說明
Dim/Static 本地變量
Dim/Private 模塊作用域下的變量
Dim/Public 共有變量

其中Dim可以省略,

舉個栗子

Sub 按鈕1_Click()
	A = "您點擊了按鈕"
    B = #12/21/2019#
    MsgBox "A: " & A & Chr(13) & "B: " & B
End Sub

在這裏插入圖片描述

補充:

  1. VBA中使用**&**連接字符串或其他類型

  2. Chr(13)代表的是ASCII編碼中的換行符

  3. 時間類型必須使用**#**包起來

聲明常量

Const 常量名 As 數據類型 = 常量的值

聲明數組

Dim/Public 數組名(a to b) as 數據類型

舉個栗子

Sub 按鈕1_Click()
    Const length As Integer = 5
    Dim arr(length) As Integer
    arr(0) = 1
    arr(1) = 10
    Dim str As String
    For i = 0 To 5
        str = str & arr(i) & ", "
    Next
    MsgBox "str: " & str
End Sub

在這裏插入圖片描述

補充:

1.VBA不僅可以定義一維數組,還可以定義二維、三維。。。

2.VBA中數組的長度會比你定義的要多一位

3.數組不能越界

註釋

單引號(

常用過程處理語句

IF Else

If 邏輯表達式 1 Then
語句塊 1
ElseIf 邏輯表達式 2 Then 
語句塊 2
ElseIf 邏輯表達式 3Then 
語句塊 3 …
Else
語句塊 n
End If

Select Case

Select Case 測試表達式
 Case 條件表達式 1
 語句塊 1
 Case 條件表達式 2
 語句塊 2
 Case 條件表達式 3
 語句塊 3
 ......
 Case 條件表達式 n
 語句塊 n
 Case Else
 語句塊 Else
End Select

舉個栗子

Sub 按鈕1_Click()
    If [a1].Value = "" Then
        MsgBox "A1 單元格沒有輸入數字。"
        Exit Sub ' 退出程序
    End If
    Select Case [a1].Value
        Case 0 To 29
            MsgBox "差"
        Case 30 To 59
            MsgBox "不及格"
        Case 60 To 79
            MsgBox "及格"
        Case 80 To 89
            MsgBox "良好"
        Case Else
            MsgBox "優秀"
    End Select
End Sub

在這裏插入圖片描述

另一種實現

Sub 按鈕1_Click()
    If [a1].Value = "" Then
        MsgBox "A1 單元格沒有輸入數字。"
        Exit Sub ' 退出程序
    End If
    Select Case [a1].Value
        Case Is < 30
            MsgBox "差"
        Case Is < 60
            MsgBox "不及格"
        Case Is < 80
            MsgBox "及格"
        Case Is < 90
            MsgBox "良好"
        Case Else
            MsgBox "優秀"
    End Select
End Sub

在這裏插入圖片描述

For

For 循環變量=初值 to 終值 step 步長
    循環體 1
    [exit for]
    循環體 2
next 循環變量

補充:

1.Next 後面的馴化變量可以省略不寫

For Each

For Each 元素變量 In 對象集合或數組名稱
    語句塊 1
    [Exit For]
    語句塊 2
next 元素變量

舉個栗子

Sub 按鈕1_Click()
    Dim i As Integer, sht As Worksheet
    i = 1
    For Each sht In Worksheets
        Cells(i, 1) = sht.Name
        i = i + 1 '讓寫入名稱的單元格下移一行
    Next
End Sub

在這裏插入圖片描述

Do While

格式1——開頭判斷循環條件:

Do While 循環條件
    語句塊 1
    [Exit Do]
    語句塊 2
Loop

格式2——結尾判斷循環條件:

Do 
    語句塊 1
    [Exit Do]
    語句塊 2
Loop While 循環條件

Do Until

格式1——開頭判斷循環條件:

Do Until 循環條件
    語句塊 1
    [Exit Do]
    語句塊 2
Loop

格式2——結尾判斷循環條件:

Do 
    語句塊 1
    [Exit Do]
    語句塊 2
Loop Until 循環條件

舉個栗子

Sub 按鈕1_Click()
    Dim Lsum As Long, i As Long
    i = 1
    Do
        Lsum = Lsum + i
        i = i + 1
    Loop Until i > 1000
    MsgBox "1 到 1000 的自然數和爲:" & Lsum
End Sub

在這裏插入圖片描述

Go To

舉個栗子

Sub 按鈕1_Click()
    Dim Lsum As Long, i As Long
    i = 1
x:     '爲 go to 語句設置的標籤,必須以英文狀態下的冒號結尾
    Lsum = Lsum + i
    i = i + 1
    If i <= 1000 Then GoTo x '如果 i<=1000,則程序跳到標籤 X 處
    MsgBox "1 到 1000 的自然數和爲:" & Lsum
End Sub

在這裏插入圖片描述

實戰-製作Excel歡迎頁面

製作窗體

新建Excel文件,Alt + F11 打開VBE(VBA編輯器),右鍵相應的Excel Project,插入 -> 用戶窗體

在這裏插入圖片描述

在窗體的Picture屬性中,添加你想要展示的歡迎界面圖片

在這裏插入圖片描述

注意最好是bmp文件,否則可能會提示無效文件

在這裏插入圖片描述

如果打不開,

可以使用Windows自帶的畫圖工具將圖片另存爲BMP文件格式

在這裏插入圖片描述

調整窗口大小至剛好可以將圖片完全展示出來

在這裏插入圖片描述

編寫代碼

右鍵剛纔新建好的窗體 -> 查看代碼

在這裏插入圖片描述

輸入如下代碼:

Private Sub UserForm_Initialize()
    Application.OnTime Now() + TimeValue("00:00:03"), "miss"
End Sub

再次右鍵相應的Excel Project,插入 -> 模塊

在這裏插入圖片描述

雙擊新建模塊,輸入如下代碼:

Sub main()
    UserForm1.Show
End Sub
Sub miss()
    Unload UserForm1
End Sub

雙擊ThisWorkbook,輸入如下代碼:

在這裏插入圖片描述

Private Sub Workbook_Open()
    Call main
End Sub

製作完畢

保存後重啓Excel,就可以看到剛纔製作的歡迎界面了

[撒花]

在這裏插入圖片描述

參考Excel下載地址:https://download.csdn.net/download/qq_33204709/12045399

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章