Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 11 Home : Microsoft 365)
DrawBox
投稿日時: 23/09/27 17:34:27
投稿者: TomVla

DrawBox
下記プログラムにより(x1, y1),(x2, y1),(x2, y1),(x2, y2)の4点を結ぶ4角形を描画します。
右辺のみが太くなってしまい、4辺の太さを揃えることができません。
プログラムがおかしいのでしょうか。ご教示よろしくお願いします。
 
Sub DrawBox()
    Dim ws As Worksheet
    Dim shp As Shape
    Dim x1 As Single, y1 As Single
    Dim x2 As Single, y2 As Single
     
    ' 直線の始点座標と終点座標を設定
    x1 = 100
    y1 = 100
    x2 = 200
    y2 = 200
     
    ' 描画するワークシートを選択(必要に応じて変更)
    Set ws = ThisWorkbook.Sheets("Sheet3")
     
    ' 直線を描画
    Set shp = ws.Shapes.AddLine(x1, y1, x2, y1)
    Set shp = ws.Shapes.AddLine(x2, y1, x2, y2)
    Set shp = ws.Shapes.AddLine(x2, y2, x1, y2)
    Set shp = ws.Shapes.AddLine(x1, y2, x1, y1)
 
    ' 直線のスタイルや色などを設定(必要に応じて変更)
    With shp
        .Line.Weight = 2 ' 線の太さ
        .Line.ForeColor.RGB = RGB(0, 0, 255) ' 線の色(青色)
 
    End With
 
End sub

回答
投稿日時: 23/09/27 18:52:29
投稿者: WinArrow

>プログラムがおかしいのでしょうか。
 
はい、おかしいです。
オブジェクト変数:shpを4回使用していますが、
>直線のスタイルや色などを設定(必要に応じて変更)
のところでは、最後のshpが有効で、それまでのshpは認識できていません。
Addlineの都度スタイル処理が必要です。

回答
投稿日時: 23/09/27 20:04:56
投稿者: WinArrow

線で四角形を作成する意図は?
 
単純に四角形を作成するのではいけないのですか?

投稿日時: 23/09/28 04:16:50
投稿者: TomVla

WinArrowさん
ありがとうございます。了解しました。
4角形の左辺のみが太くなる理由がわかりました。
 
>線で四角形を作成する意図は?単純に四角形を作成するのではいけないのですか?
今回はこれを出発点にして検討を進めようとしてます。
疑問点が出ればまた質問しますのでその際はよろしくお願いします。