【Word VBA】釘抜繋ぎ文様描画マクロ▽ソースコード

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

Option Explicit
Option Base 0
Public Sub 釘抜繋ぎ文様描画マクロ()
    Const NAPULEFT = 80         '描画開始位置X
    Const NAPUTOPP = 100        '      Y
    Const NAPUDISZ = 25                         'ひし形の大きさ
    Const NAPUHOSZ = 8                          '穴の大きさ
    Const NAPULNSZ = 3                          '線の太さ
    Const NAPUCLGP = 1                          '列の間隔
    '
    Const NAPUROWS = 8                        '縦の数
    Const NAPUCOLS = 7                         '横の数
    '---------------------------------------------------------------------------
    Dim Ip As Integer, Jp As Integer
    Dim intXp As Integer, intYp As Integer
    Dim lngCl As Long
    lngCl = RGB(0, 0, 128)                       '←塗りつぶし色
    For Ip = 0 To NAPUCOLS - 1
        intXp = NAPULEFT + _
                   (NAPUDISZ + NAPULNSZ * 2 + NAPUCLGP) * Ip
        For Jp = 0 To NAPUROWS - 1
            intYp = NAPUTOPP + (NAPUDISZ + 0) * Jp
            '*ひし形を描画します
            With ActiveDocument.Shapes.AddShape(msoShapeDiamond, _
                 intXp + NAPULNSZ, intYp, NAPUDISZ, NAPUDISZ)
                 .Fill.Visible = True
                 .Fill.ForeColor.RGB = lngCl
                 .Line.Visible = False
            End With
            '*ひし形の穴を描画します
            With ActiveDocument.Shapes.AddShape(msoShapeDiamond, _
                 intXp + NAPULNSZ + (NAPUDISZ - NAPUHOSZ) / 2, _
                 intYp + (NAPUDISZ - NAPUHOSZ) / 2, _
                         NAPUHOSZ, NAPUHOSZ)
                 .Fill.Visible = True
                 .Fill.ForeColor.RGB = vbWhite
                 .Line.Visible = False
            End With
        Next Jp
        '*左側の線を描画します
        With ActiveDocument.Shapes.AddShape(msoShapeRectangle, _
             intXp, NAPUTOPP, NAPULNSZ, (NAPUDISZ + 0) * NAPUROWS)
            .Fill.Visible = True
            .Fill.ForeColor.RGB = lngCl
            .Line.Visible = False
        End With
        '*右側の線を描画します
        With ActiveDocument.Shapes.AddShape(msoShapeRectangle, _
             intXp + NAPULNSZ + NAPUDISZ, NAPUTOPP, NAPULNSZ, _
             (NAPUDISZ + 0) * NAPUROWS)
            .Fill.Visible = True
            .Fill.ForeColor.RGB = lngCl
            .Line.Visible = False
        End With
    Next Ip
End Sub

サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す ココナラコンテンツマーケット ノウハウ記事・テンプレート・デザイン素材はこちら