如何用vba在excel工作表中插入同心不同半径的圆或者半圆?

如下图所示:

如果要在工作表中插入两个同心半圆或者圆,根据 如何用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

 

       

发表评论