vba 也可以画图,这也不是什么秘密,但是用过吗?
相信不是常用Excel的人,对此也没有多少了解。
创建图形并不是Excel的强项,但是这个功能也是十分有用。
效果图
如果要做一个精彩的表格,那么就需要对图形有十分的掌握程度。
下面介绍一下如何利用代码自动建立圆形效果。
我只抛砖,能不能引玉,那就看自然了。
随机生成多个圆形大小和颜色也是随机生成,这样每次单击按钮,效果都不一样。
如果把这个功能用到一些软件应用里面,可以大大改善应用界面的美观性,同时也会降低由于使用同一颜色带来的视觉疲劳。
整体来看这个效果还是可圈可点的,有没有感觉儿童节到了?当然了,也可画出五角星或者三角星,根据不同的选择需求,甚至可以画出一张很漂亮的画来。
只要你有创意,什么都可以做,不是吗?
重点来了说这么多,还是要切入正题的。
先说说如何用代码。
ws.Shapes.AddShape(msoShapeOval, x, y, w, h)'画出一个圆形
解释:
ws:一个表对象,即worksheet对象
msoShapeOval:圆形标识符,这个是微软定死的,就这么用就对了
x:圆形左位置
y:圆形上位置
w:圆形宽
h:圆形高
具体应用中,可以自己设置一下不同的值来测试,可能会有意外,但不会太大。
Sub addOval()
Dim ws As Worksheet
Set ws = ActiveSheet
Dim o As Shape
Dim x As Long, y As Long, w As Long, h As Long
x = VBA.Int(800 - 100 1) * VBA.Rnd 100
y = VBA.Int(300 - 100 1) * VBA.Rnd 100
w = VBA.Int(100 - 10 1) * VBA.Rnd 10
h = w
Dim r As Integer, g As Integer, b As Integer
r = VBA.Int(255 - 0 1) * VBA.Rnd 0
g = VBA.Int(255 - 0 1) * VBA.Rnd 0
b = VBA.Int(255 - 0 1) * VBA.Rnd 0
Set o = ws.Shapes.AddShape(msoShapeOval, x, y, w, h)
'新建一个圆形
With o
.Fill.ForeColor.RGB = RGB(r, g, b)'填充圆形颜色
End With
End Sub
清除圆形代码
特别提醒:
如果对以下代码不是十分熟悉,严格听取本建议,不要执行。
它有可能将你的Excel文件内的相关图表删除,没有后悔的机会,所以涉及到删除相关的代码,一般不建议初学者来执行,因为有些东西,删除了就再也回不来了。
Sub ClearOvalShape()'清除圆形
Dim C As Shape
For Each C In ActiveSheet.Shapes'遍历表内图形
If C.Type = 1 Then'如果是图形就删除
C.Delete
End If
Next C
End Sub
欢迎关注、收藏
Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved