Application主程序对象方法(二)

2019-10-13 15:39:41 浏览数 (1)

大家好,上节介绍了application主程序对象的ontime方法,本节介绍onkey方法和inputbox方法。onkey方法是用于为程序设置快捷键,inputbox方法可以创建弹窗输入信息。

一、Onkey方法

使用OnKey方法即设置快捷键,可以将程序赋给单个键或键组合,通过按下赋给的键或键组合来运行该程序。

1、基础知识

OnKey方法的语法为:

Application.OnKey(Key,Procedure)

1、参数Key,必需,指定代表所按键的字符串。

2、参数Procedure,可选,指定当按下指定键时要运行的过程名。

忽略第2个参数将使指定键恢复正常功能;而将空字符串作为第2个参数并不会恢复快捷键的原有功能,而是忽略按键,即当使用指定键时不会有任何操作。

OnKey方法设置的快捷键对所有打开的工作簿都有效

onkey方法中常用的快捷键代码如下:

也可指定与 Shift 和/或 Ctrl 和/或 Alt 组合使用的键。要指定与其他键组合使用的键,需要组合的键 在键代码之前添加

2、示例

通过onkey方法就是给vba程序过程设置快捷键,下面示例首先设置一个简单的sub过程,通过msgbox弹窗显示“新年快乐”

设置application主程序对象的onkey方法,设置快捷键Ctrl和Up键。

Sub onkey1()

Application.OnKey "^{up}", "test"

End Sub

第二个过程设设置快捷键“^{up}”代表Ctrl键加Up键,两个键的代码依次写就可以。第二个参数为test过程的字符串形式。注意两个参数是都是加英文双引号的。

同样如果快捷键写为“ ^{right}”则表示Shift键加Ctrl键加Right向右键。当按组合的快捷键时,就可以调用对应的vba过程。


二、inputbox方法

InputBox方法,可以是显示对话框,接受用户输入的信息并可以在代码中使用这些信息。

前面曾介绍过vba输入inputbox函数来获取输入的信息。本节要说明的Application主程序的inputbox方法则,它是函数的功能加强版。Application主程序的inputbox方法强化了三个功能:

1、可以指定返回的数据类型,而inputbox函数只能返回字符型。

2、可以对输入的数据进行有效性验

3、支持在单元格中以拖放的方式来指定单元格区域。

1、基础知识

Inputbox方法的语法格式和参数:

application.inputbox(prompt [,title] [,default] [,left] [,top] [,helpfile] [,helpcontextID] [,type])

其主要参数和inputbox函数类似,相比inputbox函数增加了type参数。首先是雷同的参数:

参数Prompt,必需,用于指定显示在对话框中提示用户输入的文本。

参数Title,可选,提供显示在对话框标题栏的文本。如果忽略,则默认为“输入”。

参数Default,可选,当对话框初始化时,指定对话框中显示在文本输入框中的值。如果忽略,则文本框中为空。

参数Left,可选,指定对话框相对于屏幕左上角的x位置,以磅为单位。

参数Top,可选,指定对话框相对于屏幕左上解的y位置,以磅为单位。

参数HelpFile,可选,为对话框提供帮助文件的名字。如果参数HelpFile和参数HelpContextID都被设置,则对话框中显示帮助按钮。

参数HelpContextID,可选,在参数HelpFile中的帮助主题的上下文ID编号。

参数Type,为可选,指定返回的数据类型。如果忽略该参数,则对话框返回文本。下面列出了可以传递到参数Type中的值

type参数值,可以是一个值或者多个值之和(即任意组合)。例如,如果想要输入框同时接受文本和数字,则可以设置参数Type为1 2。如果type参数值为8,inputbox方法将返回一个range对象,此时注意需要用set赋值语句,将结果赋值给一个range对象变量。(如果不适用set语句,赋值的结果不是range对象本身,而是这个区域的值。)

2、示例

通过inputbox方来,将选中单元格并标记为蓝色,插入按钮运行程序,演示图如下:

Sub test()

Dim rng As Range

Set rng = Application.InputBox("选择单元格设置背景色", _

"测试", Selection.Address, , , , , 8)

rng.Interior.ColorIndex = 5

End Sub

代码中首先定义了rng变量为单元格对象,然后用application对象的inputbox方法获得选中的单元格的地址。Selection.Address表示鼠标选中的单元格的地址,最后tpye=8为限制返回的数据类型是8,不同参数用英文逗号间隔,其中不需要设置的参数略过即可。)

由于返回的是单元格对象,需要用set语句将inputbox方法返回的单元格赋值给rng,然后将rng的背景颜色设置为蓝色。

这个示例比较全的体现inputbox方法的优势,可以返回range单元格对象,可以进行有效性验证,并支持以拖放方式指定单元格区域。

注意在代码中application.inputbox调用的是inputbox方法,不带对象标识符application的是调用inputbox函数。


今天下雨

本节主要介绍application主程序对象的onkey方法和inputbox方法,其中onkey方法也是一种excel事件,后期介绍事件时会再说明。后面将继续介绍其他方法,祝大家学习快乐。

vba

0 人点赞