SergVrn |
Дата: Суббота, 28.10.2017, 09:15 |
Сообщение № 1 |
|
Группа: Пользователи
Ранг: Участник
Сообщений: 87
Репутация:
0
±
Замечаний:
0% ±
Excel 2013 | |
Доброе утро. Помогите новичку с решением.
У меня есть макрос, рисующий линию между двумя точками.
Как заставить этот макрос - также начертить еще линию, длиной = 200, параллельную основной нарисованной линии ?
Доброе утро. Помогите новичку с решением.
У меня есть макрос, рисующий линию между двумя точками.
Как заставить этот макрос - также начертить еще линию, длиной = 200, параллельную основной нарисованной линии ?SergVrn
|
|
| Ответить
|
Roman777 |
Дата: Суббота, 28.10.2017, 12:55 |
Сообщение № 2 |
|
Группа: Проверенные
Ранг: Ветеран
Сообщений: 980
Репутация:
127
±
Замечаний:
0% ±
Excel 2007, Excel 2013 | |
SergVrn, Доброе, например:
[vba]Код Sub ЕщёМакрос() Dim X1#, Y1#, X2#, Y2# Dim X1_II#, Y1_II#, X2_II#, Y2_II# Dim dlina#, dlin_#
dlina = 200 smeshX = Cells(1, 1).Width 'Смещение параллельной линии по Х smeshY = Cells(1, 1).Height 'Смещение параллельной линии по Y X1 = Cells(5, 6) Y1 = Cells(6, 5) X2 = Cells(5, 10) Y2 = Cells(6, 9) dlin_ = Sqr((X1 - X2) ^ 2 + (Y1 - Y2) ^ 2) X1_II = X1 + smeshX Y1_II = Y1 + smeshY X2_II = ((X2 - X1) * dlina / dlin_) + X1 + smeshX Y2_II = ((Y2 - Y1) * dlina / dlin_) + Y1 + smeshY
Set lineA = ActiveSheet.Shapes.AddLine(X1, Y1, X2, Y2).Line Set lineB = ActiveSheet.Shapes.AddLine(X1_II, Y1_II, X2_II, Y2_II).Line lineB.DashStyle = msoLineDash 'msoLineDashDotDot
lineA.ForeColor.RGB = RGB(0, 0, 255) lineB.ForeColor.RGB = RGB(255, 0, 0) End Sub [/vba]
SergVrn, Доброе, например:
[vba]Код Sub ЕщёМакрос() Dim X1#, Y1#, X2#, Y2# Dim X1_II#, Y1_II#, X2_II#, Y2_II# Dim dlina#, dlin_#
dlina = 200 smeshX = Cells(1, 1).Width 'Смещение параллельной линии по Х smeshY = Cells(1, 1).Height 'Смещение параллельной линии по Y X1 = Cells(5, 6) Y1 = Cells(6, 5) X2 = Cells(5, 10) Y2 = Cells(6, 9) dlin_ = Sqr((X1 - X2) ^ 2 + (Y1 - Y2) ^ 2) X1_II = X1 + smeshX Y1_II = Y1 + smeshY X2_II = ((X2 - X1) * dlina / dlin_) + X1 + smeshX Y2_II = ((Y2 - Y1) * dlina / dlin_) + Y1 + smeshY
Set lineA = ActiveSheet.Shapes.AddLine(X1, Y1, X2, Y2).Line Set lineB = ActiveSheet.Shapes.AddLine(X1_II, Y1_II, X2_II, Y2_II).Line lineB.DashStyle = msoLineDash 'msoLineDashDotDot
lineA.ForeColor.RGB = RGB(0, 0, 255) lineB.ForeColor.RGB = RGB(255, 0, 0) End Sub [/vba]Roman777
Много чего не знаю!!!!
|
|
| Ответить
|
SergVrn |
Дата: Воскресенье, 29.10.2017, 05:35 |
Сообщение № 3 |
|
Группа: Пользователи
Ранг: Участник
Сообщений: 87
Репутация:
0
±
Замечаний:
0% ±
Excel 2013 | |
Roman777, все работает. Спасибо за код.
Roman777, все работает. Спасибо за код.SergVrn
|
|
| Ответить
|