Excel对颜色的选择是有一个内置的颜色选择窗体,也可以进行颜色编辑,选择自己想要的颜色。
这一点,使用过Excel的人,都知道。
本文介绍如何利用VBA来对颜色进行一个选择设置。
如下图所示,制作了一个颜色选择按钮,另一个按钮把Excel内置的56种颜色进行了一下自动提取,当然,这些颜色并不是固定的,当你对其中的一些进行修改的时候,它会变化并且做为固定颜色保存下来。
我们主要的学习内容就是如何把这些颜色应用到工作表当中。
具体实现过如下代码
选择颜色
Option Explicit
Private Sub SelectColors()
On Error Resume Next
Dim xDia As Object, xColor As Long
xColor = ActiveWorkbook.Colors(9)'保存第9个颜色值
Set xDia = Application.Dialogs(xlDialogEditColor)
If xDia.Show(1) = True Then'如果单击了确定按钮
Selection.Interior.Color = ActiveWorkbook.Colors(1)'设置第一个颜色块为背景颜色
Else
'MsgBox "取消按钮,不选择任何颜色!"
End If
ActiveWorkbook.Colors(9) = xColor'第9个颜色块复位
Set xDia = Nothing
End Sub
列出56种颜色
Private Sub CommandButton2_Click()
Dim R As Range, ri As Integer
Set R = ActiveSheet.Range("B2")
R.Value = "序号"
R.Offset(0, 1).Value = " 颜 色 "
R.Offset(0, 2).Value = "值"
For ri = 1 To 56
With R.Offset(ri, 0)
.Value = ri
.Offset(0, 1).Interior.Color = ActiveWorkbook.Colors(ri)'设置背景颜色
.Offset(0, 2).Value = ActiveWorkbook.Colors(ri)
End With
Next ri
With R.Offset(1, 0).Resize(56, 3)
.RowHeight = 20
.Columns.AutoFit
.VerticalAlignment = xlCenter
.HorizontalAlignment = xlCenter
.Columns(3).HorizontalAlignment = xlLeft
End With
Set R = Nothing
End Sub
显示Excel内置颜色使用到了一个对象:Colors
Colors对象是WorkBook对象下Color属性返回,如:
ActiveBook.Colors(n) 返回第n个颜色块的颜色值,n取值范围1~56。
也就是说调色板中共有56种颜色,也可以通过代码来修改这56种颜色。
ActiveWorkbook.Colors(9)=556688
这行代码就把调色板中的第9个颜色块修改成了颜色值为556688。
清除颜色
清除颜色很简单只有一行代码即可实现。
Selection.Interior.ColorIndex = xlColorIndexNone
颜色的使用在编程当中要熟练应用,对于可视化数据制作有一个极大的帮助作用,对于颜色敏感度高的人来说是一个很好的学习内容。
如果要制作出精美的Excel表格,那是必不可少要掌握的内容。
联系客服