エクセルの学校


[[20061101235611]] 『矢印を引く』(まこ) >>BOT

[ 初めての方へ | 一覧(最新更新順) |

|
| 全文検索 | 過去ログ | HOME ]

 

『矢印を引く』(まこ)
 以下のように◎を入力したら○から◎までの間にオートシェイプの矢印を
 引くことって出来るのでしょうか?
 また、◎を消したら矢印が消えてくれる事も可能でしょうか?

  A B C D E

 1 ○ → ◎
 2       ○  → ◎


 オートシェイプでなく矢印→で
 B1=IF(C1="◎","→","")
 (wisemac21)

 wisemac21さん回答有難う御座います。
 しかし、質問が悪かったかも知れませんが、○と◎の位置は常に一定の場所
 では無いのです・・・。


 マクロで作りました。
 一応下記で引けました。

  ただし,各セルのどの位置からが適当かは,記号の
 配置によりますので,自分で,係数を調整ください。
  (夕焼)

 Private Sub Worksheet_Change(ByVal Target As Range)

 If Target.Cells.Value = "◎" Then

 tr = Target.Cells.Row
 tc = Target.Cells.Column
 lastcolumn = Cells(tr, Columns.Count).End(xlToLeft).Column

 For i = 1 To lastcolumn

 If Cells(tr, i).Value = "○" Then
 maruc = i

 yb = Cells(tr, maruc).Top + Cells(tr, maruc).Height / 2
 xb = Cells(tr, maruc).Left + Cells(tr, maruc).Width * 0.8

 ye = yb
 xe = Cells(tr, tc).Left + Cells(tr, maruc).Width * 0.2

 ActiveSheet.Shapes.AddLine(xb, yb, xe, ye).Select
    Selection.ShapeRange.Line.EndArrowheadStyle = msoArrowheadTriangle
    Selection.ShapeRange.Line.EndArrowheadLength = msoArrowheadLengthMedium
    Selection.ShapeRange.Line.EndArrowheadWidth = msoArrowheadWidthMedium

    End If

 Next
 End If
 End Sub

 夕焼さん有難う御座います。完璧です!
 Addline(xb,xy,xe,ye)〜の位置をどうやって求めて良いか
 解らなかったので・・・・。
 これで理解出来ました。

コメント:

[ 一覧(最新更新順) |

]


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