重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【終了しました】教えて!gooアプリ版

たとえばセルA1にA君 B1にB君 C1にC君 の様に参加名簿が記入されてるとします。
その後、競争をして順位を別のセルに記載して、その間を各人に線を自動で引きたいのですが、何か方法ありませんか?

「excel2007で移動先に線を引きたい」の質問画像

A 回答 (3件)

昔列内で同じ値同士を結ぶのをやった事があるので、焼き直しをしてみました。


testを実行してください。xl2000と、xl2010では動きました。ご参考まで。
Sub test()
Dim startArea As Range, endArea As Range
Dim startCell As Range, hitCell As Range

Set startArea = Range(Range("A1"), Range("A" & Rows.Count).End(xlUp))
Set endArea = Range(Range("C1"), Range("C" & Rows.Count).End(xlUp))
For Each startCell In startArea.Cells
Set hitCell = endArea.Find(startCell.Value, LookAt:=xlWhole)
If Not hitCell Is Nothing Then connectCell startCell, hitCell
Next startCell
End Sub

Private Sub connectCell(myCell1 As Range, myCell2 As Range)
Dim rect1 As Shape, rect2 As Shape, connectLine As Shape

Set rect1 = drawRect(myCell1)
Set rect2 = drawRect(myCell2)
Set connectLine = ActiveSheet.Shapes.AddConnector(msoConnectorStraight, 0, 0, 1, 1)
connectLine.Line.EndArrowheadStyle = msoArrowheadTriangle
connectLine.ConnectorFormat.BeginConnect rect1, 4
connectLine.ConnectorFormat.EndConnect rect2, 2
rect1.Delete
rect2.Delete
End Sub

Private Function drawRect(myCell As Range) As Shape
With myCell
Set drawRect = ActiveSheet.Shapes.AddShape(msoShapeRectangle, .Left, .Top, .Width, .Height)
End With
End Function
    • good
    • 0

A1:A3にA君、B君、C君


C1:C3にB君、C君、A君

と、入っているとしてこんな感じでしょうか。
かなり手抜きのマクロですが…

Sub Sample()
  For i = 1 To 3
    If (Cells(i, 1) <> "") And (WorksheetFunction.CountIf(Columns("C:C"), Cells(i, 1)) > 0) Then
      Call DrawLine(Cells(i, 1), Columns("C:C").Find(What:=Cells(i, 1)))
    End If
  Next i
End Sub
Sub DrawLine(aStart As Range, aEnd As Range)
  nStartX = aStart.Left + aStart.Width
  nStartY = aStart.Top + aStart.Height / 2
  nEndX = aEnd.Left
  nEndY = aEnd.Top + aEnd.Height / 2
  ActiveSheet.Lines.Add(nStartX, nStartY, nEndX, nEndY).ShapeRange.Line.EndArrowheadStyle = msoArrowheadTriangle
End Sub
「excel2007で移動先に線を引きたい」の回答画像2
    • good
    • 0

VBAマクロでやる方法もあるんですが…もっと分かりやすいOfficeの基本機能を使った方法で


ちょうどOffice2007の自動罫線例があったのでそのサイトを紹介します

面倒な罫線入れもこれで解決!罫線を自動で入力させるワザ【知っ得!Excel 虎の巻】
http://news.livedoor.com/article/detail/4279827/

数式は用途に合わせて加工してください
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!