VBA入门整理

VBA入门整理

    • 什么是VBA
    • 相关资料
    • 常用快捷键
    • 打开“开发工具”菜单
    • 第一个VBA编程
    • VBA常用语法
      • 数据类型
      • 声明变量
      • 声明常量
      • 声明数组
      • 注释
      • 常用过程处理语句
        • IF Else
        • Select Case
        • For
        • For Each
        • Do While
        • Do Until
        • Go To
    • 实战-制作Excel欢迎页面
      • 制作窗体
      • 编写代码
      • 制作完毕

什么是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 打开宏菜单

VBA入门整理_第1张图片

Alf + F11 打开VBE(VBA编辑器)

VBA入门整理_第2张图片

打开“开发工具”菜单

文件 -> 选项

VBA入门整理_第3张图片

自定义功能区 -> 勾选“开发工具” -> 确定

VBA入门整理_第4张图片VBA入门整理_第5张图片

第一个VBA编程

开发工具 -> 插入 -> 按钮

VBA入门整理_第6张图片

拖拽即可绘制一个按钮,弹出宏菜单窗口,可以修改宏命名,确定

VBA入门整理_第7张图片

右键按钮 -> 指定宏

VBA入门整理_第8张图片

点击新建,打开VBE(VBA编辑器)

VBA入门整理_第9张图片

输入如下内容

MsgBox "您点击了按钮"

VBA入门整理_第10张图片

然后去Excel中点击按钮,效果如下:

VBA入门整理_第11张图片

恭喜,您已完成了您的第一个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

VBA入门整理_第12张图片

补充:

  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

VBA入门整理_第13张图片

补充:

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

VBA入门整理_第14张图片

另一种实现

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

VBA入门整理_第15张图片

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

VBA入门整理_第16张图片

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

VBA入门整理_第17张图片

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

VBA入门整理_第18张图片

实战-制作Excel欢迎页面

制作窗体

新建Excel文件,Alt + F11 打开VBE(VBA编辑器),右键相应的Excel Project,插入 -> 用户窗体

VBA入门整理_第19张图片

在窗体的Picture属性中,添加你想要展示的欢迎界面图片

VBA入门整理_第20张图片

注意最好是bmp文件,否则可能会提示无效文件

VBA入门整理_第21张图片

如果打不开,

可以使用Windows自带的画图工具将图片另存为BMP文件格式

VBA入门整理_第22张图片

调整窗口大小至刚好可以将图片完全展示出来

VBA入门整理_第23张图片

编写代码

右键刚才新建好的窗体 -> 查看代码

VBA入门整理_第24张图片

输入如下代码:

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

再次右键相应的Excel Project,插入 -> 模块

VBA入门整理_第25张图片

双击新建模块,输入如下代码:

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

双击ThisWorkbook,输入如下代码:

VBA入门整理_第26张图片

Private Sub Workbook_Open()
    Call main
End Sub

制作完毕

保存后重启Excel,就可以看到刚才制作的欢迎界面了

[撒花]

VBA入门整理_第27张图片

参考Excel下载地址:https://download.csdn.net/download/qq_33204709/12045399

你可能感兴趣的:(VBA,vba)