【Word VBA】丸く並ぶ円描画マクロ▽ソースコード

【Word VBA】丸く並ぶ円描画マクロ▽ソースコード

記事
IT・テクノロジー
HC220327A.png

Option Explicit
Option Base 0
Public Sub 丸く並ぶ円描画マクロ()
    Const CIRCXPOS = 200              '輪の中心位置 X
    Const CIRCYPOS = 160               '                    Y
    Const CIRCRADI = 100               '輪の半径
    '
    Const SATECONT = 12               '円の数
    Const SATERADI = 25                '円の半径
    '---------------------------------------------------------------------------
    Dim Ip As Integer, intAng As Integer
    Dim intXp As Integer, intYp As Integer, dblRd As Double
    '
    dblRd = (4 * Atn(1)) / 180
    intAng = 360 \ SATECONT
    For Ip = 0 To SATECONT - 1
        intXp = CIRCRADI * Cos(dblRd * (intAng * Ip)) + CIRCXPOS
        intYp = CIRCRADI * Sin(dblRd * (intAng * Ip)) + CIRCYPOS
'
        With ActiveDocument.Shapes.AddShape(msoShapeOval, _
                           intXp - SATERADI, intYp - SATERADI, _
                                   SATERADI * 2, SATERADI * 2)
               .Fill.ForeColor.RGB = vbCyan             '←塗りつぶし色
               .Fill.Visible = True                            '←塗りつぶし有無
               .Line.ForeColor.RGB = vbBlue           '←線色
               .Line.Weight = 2                             '←線の太さ
               .Line.Visible = True                         '←線の有無
         End With
    Next Ip
End Sub

HC220327B.png

          Const SATECONT = 5                   '円の数
          Const SATERADI = 40                  '円の半径

HC220327C.png

          Const SATECONT = 24               '円の数
          Const SATERADI = 10                '円の半径


HC220327D.png

            .Fill.Visible = False                       '←塗りつぶし有無


HC220327E.png

              Const CIRCRADI = 70                    '輪の半径

             .Fill.Visible = False                          '←塗りつぶし有無



HC220327F.png

              Const CIRCRADI = 570                        '輪の半径

             .Fill.Visible = False                               '←塗りつぶし有無


HC220327G.png


Public Sub 丸く並ぶ円描画マクロ2()
    Const CIRCXPOS = 200 '輪の中心位置 X
    Const CIRCYPOS = 160 ' Y
    Const CIRCRADI = 100 '輪の半径
    '
    Const SATECONT = 12 '円の数
    Const SATERAD1 = 25 '円の半径(1)
    Const SATERAD2 = 15 '円の半径(2)
    '---------------------------------------------------------------------------
    Dim Ip As Integer, intAng As Integer
    Dim intXp As Integer, intYp As Integer, dblRd As Double
    Dim intRa As Integer
    '
    dblRd = (4 * Atn(1)) / 180
    intAng = 360 \ SATECONT
    For Ip = 0 To SATECONT - 1
        intXp = CIRCRADI * Cos(dblRd * (intAng * Ip)) + CIRCXPOS
        intYp = CIRCRADI * Sin(dblRd * (intAng * Ip)) + CIRCYPOS
        intRa = IIf((Ip Mod 2) = 0, SATERAD1, SATERAD2)              '<<
'
        With ActiveDocument.Shapes.AddShape(msoShapeOval, _
                           intXp - intRa, intYp - intRa, _
                                   intRa * 2, intRa * 2)
               .Fill.ForeColor.RGB = vbCyan '←塗りつぶし色
               .Fill.Visible = True '←塗りつぶし有無
               .Line.ForeColor.RGB = vbBlue '←線色
               .Line.Weight = 2 '←線の太さ
               .Line.Visible = True '←線の有無
         End With
    Next Ip
End Sub


サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す