vba中提供了Application对象的Dialogs属性用于返回excel应用程序的内置对话框。
比如如下的代码将分别弹出“打开”文件对话框和”设置字体”对话框。
Sub QQ1722187970() '弹出打开文件对话框 Excel.Application.Dialogs(xlDialogOpen).Show '弹出设置字体对话框 Excel.Application.Dialogs(xlDialogFont).Show End Sub
其它的内置对话框常量可以见内置对话框枚举。
在vba中提供了Application对象的Dialogs属性返回的是Dialog对象。
在vba中Dialog对象只有一个Show方法可以使用。
正常情况下,只需要用Dialog.Show即可打开相应的对话框。
但是有些对话框却不行,比如xlDialogEditColor对话框,用如下的代码将报错:
Sub QQ1722187970() Dim oDialog As Dialog Set oDialog = Excel.Application.Dialogs(xlDialogEditColor) oDialog.Show End Sub
这是因为,Dialog对象的Show方法的语法如下:
expression . Show( Arg1 , Arg2 , Arg3 , Arg4 , Arg5 , Arg6 , Arg7 , Arg8 , Arg9 , Arg10 , Arg11 , Arg12 , Arg13 , Arg14 , Arg15 , Arg16 , Arg17 , Arg18 , Arg19 , Arg20 , Arg21 , Arg22 , Arg23 , Arg24 , Arg25 , Arg26 , Arg27 , Arg28 , Arg29 , Arg30 )
也就是Show后面可以跟参数,打开某些对话框需要提供具体的参数才能打开,xlDialogEditColor对话框就是此类。
具体某个对话框对应的参数有哪些,需要提供哪些,可以看以下链接。
其中xlDialogEditColor对话框对应的参数有color_num, red_value, green_value, blue_value
这里只有第一个参数color_num 是必须的,其它参数是可选的。其中color_num参数表示的是调色板中的颜色,可以是1-56之间的任意一个数值。
为此,将上述代码修改如下:
Sub QQ1722187970() Dim oDialog As Dialog Set oDialog = Excel.Application.Dialogs(xlDialogEditColor) 'show方法后一定要输入一个数值参数,才能打开xlDialogEditColor对话框 oDialog.Show (1) End Sub
运行后,就可以打开如下所示的颜色对话框了。
发表评论