题目
以下关于变量作用域的叙述中错误的是( )。A. 在窗体模块的声明部分声明的Private变量,其作用域是窗体内的所有过程B. 在标准模块的声明部分声明的Private变量,其作用域是模块内的所有过程C. 在窗体模块的声明部分声明的Pubilc变量,其作用域是本窗体的所有过程D. 在标准模块的声明部分声明的Pubilc变量,其作用域是应用程序的所有过程
以下关于变量作用域的叙述中错误的是( )。
A. 在窗体模块的声明部分声明的Private变量,其作用域是窗体内的所有过程
B. 在标准模块的声明部分声明的Private变量,其作用域是模块内的所有过程
C. 在窗体模块的声明部分声明的Pubilc变量,其作用域是本窗体的所有过程
D. 在标准模块的声明部分声明的Pubilc变量,其作用域是应用程序的所有过程
题目解答
答案
C. 在窗体模块的声明部分声明的Pubilc变量,其作用域是本窗体的所有过程
解析
本题考查VBA变量作用域的理解,需掌握以下关键点:
- Private变量的作用域仅限于声明它的模块内;
- Public变量的作用域为全局(整个应用程序);
- 窗体模块与标准模块中声明变量时,作用域规则不同。
破题关键:区分不同模块(窗体模块、标准模块)中声明变量时,Private和Public的适用范围。
选项分析
选项A
在窗体模块的声明部分用Private声明的变量,作用域是窗体内的所有过程。
正确。窗体模块的Private变量仅在该窗体内部可见。
选项B
在标准模块的声明部分用Private声明的变量,作用域是模块内的所有过程。
正确。标准模块的Private变量在模块内全局可见,但其他模块无法访问。
选项C
在窗体模块的声明部分用Public声明的变量,作用域是本窗体的所有过程。
错误。窗体模块的Public变量作用域是整个应用程序,其他模块或窗体均可访问。
选项D
在标准模块的声明部分用Public声明的变量,作用域是应用程序的所有过程。
正确。标准模块的Public变量为全局变量,所有模块均可访问。