Форум пользователей Visio
http://visio.getbb.ru/

совместная работа Visioи Excel
http://visio.getbb.ru/viewtopic.php?f=6&t=68
Страница 1 из 1

Автор:  Денис [ 25 фев 2011, 23:00 ]
Заголовок сообщения:  совместная работа Visioи Excel

Народ подскажите как организовать автоматичкский подсчет длинны ломаной линии в визио с отображением в числовом виде в ячейке экселя.
наблюдал как человек рисовал линию а вэкселе менялась длинна

Автор:  Surrogate [ 04 апр 2011, 18:35 ]
Заголовок сообщения:  Re: совместная работа Visioи Excel

я думал это фантастика ! :o

Автор:  Гость [ 18 окт 2011, 10:45 ]
Заголовок сообщения:  Re: совместная работа Visioи Excel

Денис писал(а):
Народ подскажите как организовать автоматичкский подсчет длинны ломаной линии в визио с отображением в числовом виде в ячейке экселя.
наблюдал как человек рисовал линию а вэкселе менялась длинна

Автор:  Surrogate [ 18 окт 2011, 11:23 ]
Заголовок сообщения:  Re: совместная работа Visioи Excel

Немного модифицировал код взятый на этом форуме в ветке Вычисление длины ломанной линии.
Код:
Sub dl()
Dim dl As Double
Dim snap1 As Shape
Dim oExcel As Excel.Application
Set oExcel = CreateObject("Excel.Application")
oExcel.Visible = True
Dim wb As Workbook
oExcel.Workbooks.Add
Set wb = oExcel.ActiveWorkbook
Set sht = wb.Sheets.Item("Лист1")
n = 1
For Each snap1 In ActiveWindow.Selection
dl = KabLength(snap1)
sht.Cells(n, 1).Value = snap1.Name
sht.Cells(n, 2).Value = dl
n = n + 1
Next snap1
End Sub

Function KabLength(Shap As Shape) As Double
Dim i As Integer
Dim Summa As Double
Dim dx As Double, dy As Double
Dim nRows As Integer
nRows = Shap.RowCount(visSectionFirstComponent) - 1
Summa = 0
For i = 1 To nRows - 1
dx = (Shap.CellsSRC(visSectionFirstComponent, i, 0) - Shap.CellsSRC(visSectionFirstComponent, i + 1, 0)) * 0.0254 * 1000
dy = (Shap.CellsSRC(visSectionFirstComponent, i, 1) - Shap.CellsSRC(visSectionFirstComponent, i + 1, 1)) * 0.0254 * 1000
Summa = Summa + Sqr(dx ^ 2 + dy ^ 2)
Next
KabLength = Summa
End Function
решение урезанное (без отслеживания динамики изменений):

во вновь созданном файле Excel, на листе "Лист1", появится список из названий выделенных шейпов с длинами

Страница 1 из 1 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/