投稿者 魔界の仮面弁士  (社会人) 投稿日時 2020/4/3 18:19:19
ストロークを四分割すれば円を描けるかと思ったのですが、
FitToCurve で制御するのは難しそう。
円周上にプロットしていくしかないのかな…。

Private Sub CommandButton1_Click()
    'チェックボックスが off なら正方形、on なら円になるかと思ったけれど…。 
    Dim IsCircle As Boolean
    IsCircle = CheckBox1.Value
    
    InkPicture1.Ink.DeleteStrokes

    '0: 右上部┓ 
    '1: 右下部┛ 
    '2: 左下部┗ 
    '3: 左上部┏ 
    Dim Strokes(3) As IInkStrokeDisp
    With InkPicture1.Ink
        Set Strokes(0) = .CreateStroke(MakePoints(4400, 0, 8800, 0, 8800, 4400), Null)
        Set Strokes(1) = .CreateStroke(MakePoints(8800, 4400, 8800, 8800, 4400, 8800), Null)
        Set Strokes(2) = .CreateStroke(MakePoints(4400, 8800, 0, 8800, 0, 4400), Null)
        Set Strokes(3) = .CreateStroke(MakePoints(0, 4400, 0, 0, 4400, 0), Null)
    End With
    
    Dim n As Integer
    For n = 0 To 3
        With Strokes(n).DrawingAttributes
            .FitToCurve = IsCircle
            .Color = QBColor(n + 9)
        End With
    Next

    InkPicture1.AutoRedraw = False
    With InkPicture1.Ink.CreateStrokes()
        For n = 0 To 3
            .Add Strokes(n)
        Next
    End With
    InkPicture1.AutoRedraw = True
End Sub