[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『オートシェイプでセルとセルの中央を直線で結ぶ』(たま)
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.