--- Revision None +++ Revision 326561343166 @@ -0,0 +1,59 @@ +Sub Main() + Dim x As Long + Dim y As Long + Dim l As String + Dim a As Variant + + a = Selection.Value + If 1 < UBound(a, 1) Then + If 1 < UBound(a, 2) Then + LineFill a, UBound(a, 1), UBound(a, 2), 1, 1 + End If + End If + + For y = LBound(a, 1) To UBound(a, 1) + l = "" + For x = LBound(a, 2) To UBound(a, 2) + l = l & a(y, x) + Next + Debug.Print l + Next +End Sub + +Sub LineFill(a As Variant, my As Long, mx As Long, y As Long, x As Long) + Dim i As Long + Dim ny As Long + Dim nx As Long + + For i = y + 1 To my + If Not IsEmpty(a(i, x)) Then + Exit For + End If + Next + ny = i + nx = x + 1 + + For i = ny - 1 To y + 1 Step -1 + If Not IsEmpty(a(i, x + 1)) Then + Exit For + End If + a(i, x) = " " + Next + a(i, x) = "└" + For i = i - 1 To y + 1 Step -1 + If IsEmpty(a(i, x + 1)) Then + a(i, x) = "│" + Else + a(i, x) = "├" + End If + Next + + If nx < mx Then + If y + 1 < ny - 1 Then + LineFill a, ny - 1, mx, y + 1, nx + End If + End If + If ny < my Then + LineFill a, my, mx, ny, x + End If +End Sub