[[20200123165618]] 『オートシェイプでセルとセルの中央を直線で結ぶ』(たま) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『オートシェイプでセルとセルの中央を直線で結ぶ』(たま)

VBAでセルとセルの中央から中央までをオートシェイプの
直線矢印で結ぶ方法はありますか
例えばセルA1セルの真ん中からB2セルの真ん中
を結ぶ方法を教えていただけないでしょうか
宜しくお願いいたします

< 使用 Excel:Office365、使用 OS:Windows10 >


 Sub test1()
    With Range("A1:B2")
        ActiveSheet.Shapes.AddConnector msoConnectorStraight, _
            .Left + .Width * 1 / 4, .Top + .Height * 1 / 4, _
            .Left + .Width * 3 / 4, .Top + .Height * 3 / 4
    End With
 End Sub
(???) 2020/01/23(木) 17:10

 ???さんと同じですが。。
 Sub test()
    Dim Rng(1)
    Dim XPos(1)
    Dim YPos(1)
    Dim i As Long
    Set Rng(0) = Range("A1")
    Set Rng(1) = Range("B2")
    For i = 0 To 1
        XPos(i) = Rng(i).Left + Rng(i).Width / 2
        YPos(i) = Rng(i).Top + Rng(i).Height / 2
    Next i
    ActiveSheet.Shapes.AddConnector msoConnectorStraight, XPos(0), YPos(0), XPos(1), YPos(1)
 End Sub
(ろっくん) 2020/01/23(木) 17:14

あぁ、汎用性があるように書いたほうが良いですね。
 Sub test2()
    With Range("A1:B2")
        ActiveSheet.Shapes.AddConnector msoConnectorStraight, _
            .Left + .Width * 1 / (.Columns.Count * 2), .Top + .Height * 1 / (.Rows.Count * 2), _
            .Left + .Width * (.Columns.Count * 2 - 1) / (.Columns.Count * 2), .Top + .Height * (.Rows.Count * 2 - 1) / (.Rows.Count * 2)
    End With
 End Sub
(???) 2020/01/23(木) 17:19

おっと、矢印にし忘れました。 最後に以下を追加してください。
    ActiveSheet.Shapes(ActiveSheet.Shapes.Count).Line.EndArrowheadStyle = msoArrowheadTriangle

あと、私のコードだと右下がりだけなので、ろっくんさんのコードのように、始点だけ、終点だけで座標を得る方が良いですね。
(???) 2020/01/23(木) 17:28


ってな訳で、私の案の最終形です。
 Sub test3()
    Dim iX1 As Single
    Dim iY1 As Single
    Dim iX2 As Single
    Dim iY2 As Single

    With Range("A1")
        iX1 = .Left + .Width / 2
        iY1 = .Top + .Height / 2
    End With
    With Range("B2")
        iX2 = .Left + .Width / 2
        iY2 = .Top + .Height / 2
    End With

    ActiveSheet.Shapes.AddConnector msoConnectorStraight, iX1, iY1, iX2, iY2
    ActiveSheet.Shapes(ActiveSheet.Shapes.Count).Line.EndArrowheadStyle = msoArrowheadTriangle
 End Sub
(???) 2020/01/23(木) 17:34

コメントが遅くなりすみませんでした
ここしばらく体調不良で寝込んでいまして、、、、

???さん、ろっくんさん、
コメントくださりありがとうございました

セルの右端、左端というのはよくあるのですが真ん中というのが
見当たらなくて、質問させていただきました

本当にありがとうございました

(たま) 2020/01/31(金) 11:26


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.