如下图所示:

如果要在工作表中插入两个同心半圆或者圆,根据 如何用vba在excel工作表中插入圆?和如何用vba在excel工作表中插入半圆? 中介绍的。
当用vba在工作表中插入圆或者半圆时,AddShape需要提供4个参数,分别为图形的左上角的X、Y坐标值,以及图形的宽、高值。
当宽、高值相等时,为圆形。
如果要插入同心圆,需要计算圆心的坐标,然后根据圆心的坐标折算另一个方形的左上角的X、Y坐标值。
根据以上的知识,可以用如下的代码在excel中插入同心的两个半圆或者圆:
Sub QQ1722187970()
Dim oSP As Shape
Dim oWK As Worksheet
Set oWK = Excel.ActiveSheet
'插入一个半径为50Point的圆
Set oSP = oWK.Shapes.AddShape(msoShapeOval, 200, 200, 100, 100)
With oSP
.Fill.ForeColor.RGB = RGB(255, 0, 0)
End With
'插入一个半径为40Point的圆
Set oSP = oWK.Shapes.AddShape(msoShapeOval, 200 + 100 / 2 - 80 / 2, 200 + 100 / 2 - 80 / 2, 80, 80)
With oSP
.Fill.ForeColor.RGB = RGB(255, 255, 0)
End With
Set oSP = oWK.Shapes.AddShape(msoShapePie, 100, 100, 100, 100)
With oSP
'将第一个调节点旋转90°
.Adjustments(1) = 90
.Fill.ForeColor.RGB = RGB(255, 0, 0)
End With
Set oSP = oWK.Shapes.AddShape(msoShapePie, 100 + 100 / 2 - 80 / 2, 100 + 100 / 2 - 80 / 2, 80, 80)
With oSP
'将第一个调节点旋转-90°
.Adjustments(1) = -90
'将第二个调节点旋转-270°
.Adjustments(2) = -270
.Fill.ForeColor.RGB = RGB(255, 255, 0)
End With
End Sub


发表评论