如下图所示:
如果要在工作表中插入两个同心半圆或者圆,根据 如何用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
发表评论