※ ChatGPTを利用し、要約された質問です(原文:Word VBA 多角形の描画でエラー)
Word VBA 多角形の描画でエラー
このQ&Aのポイント
Word VBAで四角形を描画する際のエラーについて
隣接するノード間の距離が0.075ポイント未満ではエラーになる
Word 2002以降でも同様のエラーが発生するか
いまだにWord 2002を使用していますが、Word VBAで、下記のようなプログラムで四角形を描画する場合、第1ノードと第2ノードの距離が0.075以上なら正常に描画されるのに、N2Yを20.074にして、距離を0.074にすると、「書き込みできません」というエラーになります。
Set shpCanvas = ActiveDocument.Shapes.AddCanvas(Left:=100, Top:=75, Width:=150, Height:=100)
shpCanvas.WrapFormat.Type = wdWrapInline '描画キャンバスが行内に収まるよう書式設定。
N1X = 10: N1Y = 20: N2X = 10: N2Y = 20.075: N3X = 30: N3Y = 40: N4X = 35: N4Y = 26:
length12 = Sqr((N2X - N1X) ^ 2 + (N2Y - N1Y) ^ 2): MsgBox length12
With shpCanvas.CanvasItems
With .BuildFreeform(msoEditingAuto, N1X, N1Y)
.AddNodes msoSegmentLine, msoEditingAuto, N2X, N2Y: .AddNodes msoSegmentLine, msoEditingAuto, N3X, N3Y
.AddNodes msoSegmentLine, msoEditingAuto, N4X, N4Y: .AddNodes msoSegmentLine, msoEditingAuto, N1X, N1Y '
.ConvertToShape
End With
End With
要するに、隣接するノード間の距離が0.075ポイント未満では「書き込みできません」というエラーになる模様です。(より正確には、0.0749999未満でエラー。0.0749999はOK。ただし、縦方向の距離が0.0749998の場合、横方向の距離が0.0750003以上ならOKで、それ未満なら、実際の斜めの距離が0.075以上でもエラーになるようです。)
最近のバージョンでも同じことでしょうか。
お礼
早速の回答ありがとうございます。 そうすると、2010以降のバージョンに乗り換えた方がよさそうですね。