Option Explicit
Option Base 0
'
Public Sub 放射状文字列描画マクロ()
Const RDSTPAIV = 3.141592653589 'π
Const RDSTCXPS = 200 '円の中心位置 X
Const RDSTCYPS = 150 ' Y
Const RDSTRADI = 80 '円の半径
' ※円の中心位置は、
' 文字列の長さ、大きさによって若干ズレます。
'
Const RDSTCONT = 12 '放射状の文字列の数
'
Const RDSTSTRI = "令和六年霜月" '文字列
Const RDSTFNTN = "メイリオ" 'フォント名
Const RDSTFNTS = 16 'フォントサイズ
'---------------------------------------------------------------------------
Dim Ip As Integer, intDxp As Integer, intDyp As Integer
Dim sngRad As Single
'
sngRad = (2 * RDSTPAIV) / RDSTCONT
For Ip = 0 To RDSTCONT - 1
intDxp = RDSTRADI * Cos(sngRad * Ip) + RDSTCXPS
intDyp = RDSTRADI * Sin(sngRad * Ip) + RDSTCYPS
'
With ActiveDocument.Shapes.AddTextEffect( _
msoTextEffect6, RDSTSTRI, RDSTFNTN, RDSTFNTS, False, False, _
intDxp, intDyp)
.Rotation = (360 / RDSTCONT) * Ip
End With
Next Ip
End Sub