如何用vba调出调色板选择颜色对话框,并且保存使用选择的颜色?

在设计vba解决方案时,有时候需要给用户提供选择颜色的操作,同时,基于用户选择的颜色执行某些操作。

在vba中可以使用如下的代码弹出颜色对话框供选择颜色:

当在上述“颜色”对话框中选择颜色后,单击“确定”按钮,直接关闭对话框。

如果要使用上述选中的颜色,需要调用Workbook.Colors属性。

Workbook.Colors属性返回的是调色板中的颜色,它的语法如下:

其中Index参数为1-56的任意整数,代表调色板中的1到56种颜色。如果Index参数未提供,则返回一个含有56种颜色的数组。

当用 Excel.Application.Dialogs(xlDialogEditColor).show(1)打开颜色对话框后,默认选中的就是调色板中序号为1的颜色,如果修改了颜色,单击确定,则调色板中序号为1的颜色就变了,但是可以通过Workbook.Colors(1)读取修改后的颜色。

类似的当用 Excel.Application.Dialogs(xlDialogEditColor).show(2)打开颜色对话框后,默认选中的就是调色板中序号为2的颜色,如果修改了颜色,单击确定,则调色板中序号为2的颜色就变了,但是可以通过Workbook.Colors(2)读取修改后的颜色。

基于这样的原理,就可以将调色板中选择的颜色保存下来。

如果需要将调色板1-56序号对应的颜色修改为默认的颜色,可以使用Workbook.ResetColors方法重置调色板为默认的。

以下是一个通用的代码:

       

发表评论