大家好,上节介绍了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事件,后期介绍事件时会再说明。后面将继续介绍其他方法,祝大家学习快乐。