编写VBA程序

E5071C

编写VBA程序

有关基本操作的其他主题

概述

用户可以在编码窗口中编写VBA程序,还能浏览样本程序(过程),该样本程序找出数组中的最大值,方便用户深入分析如何创建自己的程序,这部分描述编码窗口的用户界面元素。

编码窗口的用户界面元素

用户在编码窗口编写VBA程序。使用用户表单时,双击表单上的控制(如按钮或文本框)打开用户表单的编码窗口。同样,使用标准或类模块时,双击项目浏览器中的模块图标打开与模块相关的编码窗口。

标准模块的编码窗口

1. 对象框

显示编码窗口中当前使用的对象列表。

2. 程序框

显示编码窗口内的程序列表。使用用户表单时,它显示一系列事件(如点击或双击等动作)。

3. 边距指示器栏

主要用于调试程序。

4. 显示程序按钮

只显示光标处的程序。

5. 显示模块按钮

显示编码窗口中的完整程序。

创建简单的VBA程序

将编码分解为多个块并对分解进行描述时,这部分浏览能找出数组中最大值的样本程序。添加行号只用于说明,并不在实际的程序源代码中出现。

找出数组中最大值的样本程序

10| Option Explicit

20|

30| Sub Maximum()

40|

50| Dim q As Variant

60| Dim x(100) As Integer

70| Dim i As Integer, n As Integer

80| Dim Start As Integer, Last As Integer, Num As Integer

90| Dim Maximum As Integer

100|

110| ' Defining the array

120| q = Array(7, -2, 3, -20, 15, -6, 27, -12, 9, -5, 18, 23, _

130| 9, -16, 22, 0)

140|

150| Start = LBound(q)

160| Last = UBound(q)

170| Num = Last - Start + 1

180|

190| For i = Start To Last

200| x(i) = q(i)

210| Next i

220|

230| Maximum = x(Start)

240|

250| For n = Start + 1 To Last

260| If x(n) > Maximum Then Maximum = x(n)

270| Next n

280|

290| MsgBox Maximum

300|

310| End Sub

 

将编码分解为多个块并分析块的执行。

10行

这个指令要求对变量进行显式声明。

30行到310行

SubMaximum()和End Sub之间的代码在E5071C的宏环境中执行。因此,其中的代码称为程序。在本例中,“Maximum”是程序名。

50行到90行

这些行用Dim语句声明变量的数据类型。语句是以语法为基础的最小指令单元。样本程序声明变量“q”为Variant,变量“x(100)”、“i”、“n”、“Start”、“Last”、“Num”和“Maximum”为Integer。如欲了解语句的完整列表和VBA支持的数据类型,参见VBA在线帮助。

110行

注释指示器(')前面的任何文本都当做注释。

120行到130行

这些行使用VBA的数组函数对数组进行初始化。q()数组包括用逗号分隔、按索引数递增的顺序排列(索引数从0开始)的元素。空格和下划线(_)连用能继续声明2行或更多行。

150行

将q数组的起始索引数存储到起始变量中。

160行

将q数组的终止索引数存储到终止变量中。

170行

将q数组的元素个数存储到Num变量中。

190行到210行和250行到270行

重复每个For?/span> ?/span> ?/span> Next语句的代码,直到计数器达到指定的数。

200行

将q数组(Variant)的内容存储到x变量(Interger)中。

230行

假定x数组的第1个元素为最大值。

260行

将假定最大值与其后面的每个元素进行比较;若后面的元素大于假定最大值,则将该元素定为假定的最大值。

290行

用消息框函数显示最大值。如欲了解VBA支持的完整函数列表,参见VBA在线帮助。

  • 上述样本程序由单一模块中的单一程序组成。但是,处理多模块程序和变量时,必须注意变量和程序的范围。

 

自动完成功能

使用Visual Basic Editor的COM对象时,editor的自动完成功能支持关键字输入,使用非常方便且不会出现拼写错误。

下面的程序假定输入SCPI.INITiate(Ch).CONTinuous对象。

  1. 在标准模块中,输入sub main并按下Enter键,自动添加End Sub

  2. 输入scpi和一个句点(.),打开SCPI类的的类别列表。

  3. 输入in,自动将焦点移到列表框的INITiate

  4. 输入(,出现索引列表。

  5. 输入“1).”,出现INITiate类的分类列表。

  6. 输入c,自动将焦点移到列表框的CONTinuous上。

  7. 输入=,打开设置Boolean值的列表框(True/False)(真/假)。

  8. 输入t,将焦点自动移到True(真)。

  9. 按下Enter键,完成SCPI.INITiate(1).CONTinuous = True语句。