【Word VBA】穴あき四角形模様描画マクロ▽ソースコード

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

Option Explicit
Option Base 0
'
Public Sub 穴あき四角形模様描画マクロ()
    Const FRAMLEFT = 80                    '描画開始位置X
    Const FRAMTOPP = 90                   '      Y
    '
    Const FRAMSWID = 32                   '描画幅
    Const FRAMSHEI = 24                    '描画高さ
    '
    Const FRAMVSPC = 10                    '横-間隔
    Const FRAMHSPC = 10                    '縦-間隔
    Const FRAMCOLS = 6                      '横/描画数
    Const FRAMROWS = 5                     '縦/描画数
    '
    Const FRAMHOPS = 0.25                  '穴比率から
    Const FRAMHOPE = 0.45                  '穴比率まで
    '
    Const FRAMANGL = -25                   '傾き
    '---------------------------------------------------------------------------
    Dim Ip As Integer, Jp As Integer
    Dim intDxp As Integer, intDyp As Integer
    Dim lngCol As Long, sngHsp As Single
  ' 
    lngCol = RGB(65, 105, 225)        '←塗りつぶし色
    sngHsp = (FRAMHOPE - FRAMHOPS) / (FRAMCOLS - 1)
    For Jp = 0 To FRAMROWS - 1
        intDyp = FRAMTOPP + (FRAMSHEI + FRAMHSPC) * Jp
        For Ip = 0 To FRAMCOLS - 1
            intDxp = FRAMLEFT + (FRAMSWID + FRAMVSPC) * Ip
            '*穴あき四角形描画
             With ActiveDocument.Shapes.AddShape( _
                  msoShapeFrame, _
                 intDxp, intDyp, FRAMSWID, FRAMSHEI)
                .Fill.Visible = msoTrue
              .Fill.ForeColor.RGB = lngCol            '←塗りつぶし色
                .Line.Visible = msoFalse
                '↓四角形に対する穴比率(奇数行:増/偶数行:減)
                .Adjustments(1) = IIf((Jp Mod 2) = 0, _
                     FRAMHOPS + sngHsp * Ip, _
                     FRAMHOPE - sngHsp * Ip)
                .Rotation = FRAMANGL
             End With
        Next Ip
    Next Jp
End Sub

《蛇足》
 模様としては、穴の大きさは一定が綺麗でしょうが、マクロで描画するということで、あえて増減させてみました。


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