Приветствую всех форумчан. Помогите решить вопрос. На листе - ряд фигур и картинка с названием Рисунок 7 Как макросом выписать в ячейки, находящиеся по фигурами - расстояние от их центров - до центра рисунка ?
Приветствую всех форумчан. Помогите решить вопрос. На листе - ряд фигур и картинка с названием Рисунок 7 Как макросом выписать в ячейки, находящиеся по фигурами - расстояние от их центров - до центра рисунка ?Megamen2
Function DistanceCent(objA As Object, objB As Object) DistanceCent = Sqr((objA.Left + objA.Width / 2 - objB.Left + objB.Width / 2) ^ 2 + (objA.Top + objA.Height / 2 - objB.Top + objB.Height / 2) ^ 2) End Function
Sub test() Dim objShape As Object For Each objShape In Sheet3.Shapes If objShape.Name Like "Прямоугольник*" Then Debug.Print DistanceCent(Sheet3.Shapes("Рисунок 7"), objShape) End If Next
[/vba]
[vba]
Код
Function DistanceCent(objA As Object, objB As Object) DistanceCent = Sqr((objA.Left + objA.Width / 2 - objB.Left + objB.Width / 2) ^ 2 + (objA.Top + objA.Height / 2 - objB.Top + objB.Height / 2) ^ 2) End Function
Sub test() Dim objShape As Object For Each objShape In Sheet3.Shapes If objShape.Name Like "Прямоугольник*" Then Debug.Print DistanceCent(Sheet3.Shapes("Рисунок 7"), objShape) End If Next
bmv98rus, я поменял название листа. Теперь выглядит так. [vba]
Код
Function DistanceCent(objA As Object, objB As Object) DistanceCent = Sqr((objA.Left + objA.Width / 2 - objB.Left + objB.Width / 2) ^ 2 + (objA.Top + objA.Height / 2 - objB.Top + objB.Height / 2) ^ 2) End Function
Sub test() Dim objShape As Object For Each objShape In Sheets("Лист3").Shapes If objShape.Name Like "Прямоугольник*" Then Debug.Print DistanceCent(Sheets("Лист3").Shapes("Рисунок 7"), objShape) End If Next
End Sub
[/vba] А как вывести в ячейку D7 результат, чтобы просто посмотреть на него ? Ставлю вот такую строчку - что-то не работает: [vba]
Просто я сейчас не могу посмотреть на результат, поскольку макрос его нигде не показывает.
bmv98rus, я поменял название листа. Теперь выглядит так. [vba]
Код
Function DistanceCent(objA As Object, objB As Object) DistanceCent = Sqr((objA.Left + objA.Width / 2 - objB.Left + objB.Width / 2) ^ 2 + (objA.Top + objA.Height / 2 - objB.Top + objB.Height / 2) ^ 2) End Function
Sub test() Dim objShape As Object For Each objShape In Sheets("Лист3").Shapes If objShape.Name Like "Прямоугольник*" Then Debug.Print DistanceCent(Sheets("Лист3").Shapes("Рисунок 7"), objShape) End If Next
End Sub
[/vba] А как вывести в ячейку D7 результат, чтобы просто посмотреть на него ? Ставлю вот такую строчку - что-то не работает: [vba]