Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


3201 / 13644 ツリー ←次へ | 前へ→

【63595】線を縦てに引きたい。 トキノハジメ 09/11/20(金) 13:22 質問[未読]
【63596】Re:線を縦てに引きたい。 Jaka 09/11/20(金) 14:06 発言[未読]
【63606】Re:線を縦てに引きたい。 トキノハジメ 09/11/20(金) 17:45 質問[未読]
【63607】Re:線を縦てに引きたい。 トキノハジメ 09/11/20(金) 18:08 お礼[未読]

【63595】線を縦てに引きたい。
質問  トキノハジメ  - 09/11/20(金) 13:22 -

引用なし
パスワード
   1. A B C D E
1  3 2 4 1 5
2
3  4 3 2 5 1

2. A B C
1 3   4
2 2   3
3 4   2
4 1   5
5 5   1

上記の表で2.はコードを見つけたのですが、同じ数字同士を
線を引いて結べたのですが
1.の表にて縦に線を引けるのでしょうか教えてください。
宜しくお願いいたします。
2.のコードは下記のものです。

Sub Sample()
  Dim c As Range, i As Long
  Dim x1 As Single, y1 As Single, x2 As Single, y2 As Single
  For Each c In Range("A1:A5")
    For i = 1 To 5
      If InStr(Cells(i, 3).Value, c.Vallue) > 0 Then
        x1 = c.Offset(0, 1).Left
        y1 = c.Top + (c.Height / 2)
        x2 = Cells(i, 3)Left
        y2 = Cells(i, 3).Top + Cells(i, 3).Height / 2)
        ActiveSheet,Shapes.AddLine(x1, y1, x2, y2).Select
        SelecTion.ShapeRange.Line.EndArrowheadStyle = _
        mscArrowheadTriangle
      End If
    Next i
  Next c
  ActiveCell.Activate
End Sub


    

【63596】Re:線を縦てに引きたい。
発言  Jaka  - 09/11/20(金) 14:06 -

引用なし
パスワード
   >        SelecTion.ShapeRange.Line.EndArrowheadStyle = _
>        mscArrowheadTriangle
↑これ動かないんですけど。
で、何となく↓こうなった。

Sub jiji()
Dim Cel As Range, Ans As Variant
For Each Cel In Range("A1:F1")
  If Cel.Value <> "" Then
    Ans = Application.Match(Cel.Value, Rows(3), 0)
    If Not IsError(Ans) Then
     Call bobo(Cel, Cells(3, Ans))
    End If
  End If
Next
End Sub

Sub bobo(Cel As Range, RG As Range)
Dim SttL As Double, SttT As Double
Dim EndL As Double, EndT As Double
SttL = Cel.Left + Cel.Width / 2
SttT = Cel.Offset(1).Top
EndL = RG.Left + RG.Width / 2
EndT = RG.Top
With ActiveSheet.Shapes.AddLine(SttL, SttT, EndL, EndT)
  .Line.EndArrowheadStyle = msoArrowheadTriangle
End With
End Sub

【63606】Re:線を縦てに引きたい。
質問  トキノハジメ  - 09/11/20(金) 17:45 -

引用なし
パスワード
   ▼Jaka さん:
有難うございます。
Selection の間違いでした。すみません。
いただいたコードをやって見ましたが
結果 A の所から纏めて各セルに矢印が引けました。
コードの間違いは無いと思うのですが色々試しましたが
上手くいきません。もう一手教えてください。

>>SelecTion.ShapeRange.Line.EndArrowheadStyle = _
>>        mscArrowheadTriangle
>↑これ動かないんですけど。
>で、何となく↓こうなった。
>
>Sub jiji()
>Dim Cel As Range, Ans As Variant
>For Each Cel In Range("A1:F1")
>  If Cel.Value <> "" Then
>    Ans = Application.Match(Cel.Value, Rows(3), 0)
>    If Not IsError(Ans) Then
>     Call bobo(Cel, Cells(3, Ans))
>    End If
>  End If
>Next
>End Sub
>
>Sub bobo(Cel As Range, RG As Range)
>Dim SttL As Double, SttT As Double
>Dim EndL As Double, EndT As Double
>SttL = Cel.Left + Cel.Width / 2
>SttT = Cel.Offset(1).Top
>EndL = RG.Left + RG.Width / 2
>EndT = RG.Top
>With ActiveSheet.Shapes.AddLine(SttL, SttT, EndL, EndT)
>  .Line.EndArrowheadStyle = msoArrowheadTriangle
>End With
>End Sub

【63607】Re:線を縦てに引きたい。
お礼  トキノハジメ  - 09/11/20(金) 18:08 -

引用なし
パスワード
   jakaさん  有難うございました。
うまくいきました。
又よろしくお願いいたします。

3201 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free