投稿者 魔界の仮面弁士  (社会人) 投稿日時 2020/4/3 01:38:07
> ※1から※3の、それぞれ単独で描く時とも形が違うようで、

具体的にはどのように違うのでしょうか?

そもそもどういう図形を描画したいのかが分からないので、
比較画像を貼っていただいた方が良さそうです。

とりあえず、ストロークとしてプロットされたのは、下記の座標ですね。
💚※1系統が緑
🤎※2系統が茶
💙※3系統が青




提示頂いたコードですと、Bézier 曲線が有効になっているのは、
結局 ※3 だけのようですが…それは意図的にそうしているのでしょうか?


元のコードは With 句の使い方が不自然で読み辛かったので、少し整理して書き直してみました。

Option Explicit

Private greenPoints() As Long
Private bluePoints() As Long
Private brownPoints() As Long

Private Sub CommandButton1_Click()
    InkPicture1.AutoRedraw = False
    InkPicture1.Ink.DeleteStrokes   '←クリア処理(元コードには無かったもの) 
    InkPicture1.Ink.CreateStrokes().Add InkPicture1.Ink.CreateStroke(greenPoints, Null)
    InkPicture1.Ink.CreateStrokes().Add InkPicture1.Ink.CreateStroke(bluePoints, Null)
    With InkPicture1.Ink.CreateStrokes()
        .Add InkPicture1.Ink.CreateStroke(brownPoints, Null)
        Dim DrawingAttributes As InkDrawingAttributes
        Set DrawingAttributes = InkPicture1.DefaultDrawingAttributes.Clone()
        DrawingAttributes.FitToCurve = True
        .ModifyDrawingAttributes DrawingAttributes
    End With
    InkPicture1.AutoRedraw = True
End Sub

Private Sub UserForm_Initialize()
    greenPoints = MakePoints(4400, 0, _
                             6600, 2200, _
                             8800, 4400, _
                             6600, 6600, _
                             4400, 8800, _
                             2200, 6600, _
                             0, 4400, _
                             2200, 2200, _
                             4400, 0)

    bluePoints = MakePoints(0, 0, _
                            8800, 0, _
                            8800, 8800, _
                            0, 8800, _
                            0, 0)

    brownPoints = MakePoints(0, 0, _
                             4400, 0, _
                             4400, 4400, _
                             0, 4400, _
                             0, 0)
End Sub



描画結果はこうなりますね。
(この画像はストロークを識別できるよう、DrawingAttributes.Color も設定したものです)





FitToCurve = True を、※1、※2、※3 すべてに指定するとこんな感じ。




FitToCurve = True をいずれにも指定しないとこうなります。