Option Explicit
Option Base 0
Public Sub 日本国旗描画マクロ()
Const NAFLGLFT = 100 '描画開始位置X
Const NAFLGTOP = 100 ' Y
Const NAFLGWID = 150 '国旗の幅
'---------------------------------------------------------------------------
'旗の形は縦が横の3分の2の長方形。
'日章の直径は縦の5分の3で中心は旗の中心。
'地色は白色、日章は紅色。
'「国旗及び国歌に関する法律」(国旗・国歌法)より
Dim intHe As Integer, intRd As Integer
'*白地
intHe = (NAFLGWID * 2) \ 3
With ActiveDocument.Shapes.AddShape(msoShapeRectangle, _
NAFLGLFT, NAFLGTOP, NAFLGWID, intHe)
.Fill.Visible = True: .Fill.ForeColor = vbWhite
.Line.Visible = True: .Line.ForeColor = vbBlack
.Line.Weight = 0.75
End With
'*赤丸(日章)
intRd = (intHe * 3) \ 10
With ActiveDocument.Shapes.AddShape(msoShapeOval, _
NAFLGLFT + NAFLGWID \ 2 - intRd, _
NAFLGTOP + intHe \ 2 - intRd, intRd * 2, intRd * 2)
.Fill.Visible = True
.Fill.ForeColor.RGB = vbRed
.Line.Visible = False
End With
End Sub
蛇足
米国など複雑な模様の国旗の国は、どうやって、子供に自国の国旗を教えるのか、ふと気になりました。賢くもなく器用でもない僕にとっては、シンプルな国旗の国に生まれて、それだけでもよかったと思います。