|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
29.07.2009, 15:30 | #1 |
Регистрация: 06.06.2009
Сообщений: 7
|
как нарисовать стрелку из одной ячейки в другую
Уважаемые форумчане!
Есть список пунктов, между которыми проложен канал. Подскажите, пожалуйста, как нарисовать стрелку из одного пункта в другой? Можно, конечно, и руками, но пунктов очень много. Заранее спасибо тем, кто откликнулся!!! |
29.07.2009, 17:33 | #2 |
Пользователь
Регистрация: 16.06.2009
Сообщений: 20
|
предлагается вот такой "нехитрый" вариант решения проблемы
|
30.07.2009, 10:59 | #3 |
Пользователь
Регистрация: 16.06.2009
Сообщений: 20
|
есть еще более простой и больлее полезный вариант - показывающий направление канала
|
30.07.2009, 12:05 | #4 |
Регистрация: 06.06.2009
Сообщений: 7
|
diment, большое спасибо за совет! Любопытное решение
Все-таки стрелки надо нарисовать. |
27.02.2013, 17:11 | #5 | |
Новичок
Джуниор
Регистрация: 27.02.2013
Сообщений: 1
|
Вопрос, конечно уже старый, но вдруг кому-то пригодится
Цитата:
Во-вторых, примитивный пример рисования стрелки в ячейке Экселя на VBA. ********************************* Sub DrawArrowInCell() ' -привязка к странице Set mydocument = ThisWorkbook.Worksheets(1) ' получаем имя страницы для передачи его в подпрограммы и функции wn = mydocument.Name ' получаем х координату центра ячейки (4,7) xb = GetXCellCenter(wn, 4, 7) ' получаем у координату центра ячейки (4,7) yb = GetYCellCenter(wn, 4, 7) lx = 43 ' задаем длину стрелки в поинтах по х ly = -30 ' задаем длину стрелки в поинтах по у ' знак управляет направлением стрелки. ' Отсчет координат, традиционно, из верхнего левого угла вправо (Х) и вниз (У) ' удаляем все объекты на листе mydocument.Shapes.SelectAll Selection.Delete 'Рисуем стрелку из центра (xb,yb) With mydocument.Shapes.AddLine(xb, yb, xb + lx, yb + ly).Line .ForeColor.RGB = RGB(0, 0, 0) .EndArrowheadStyle = msoArrowheadTriangle .EndArrowheadLength = msoArrowheadLengthMedium .EndArrowheadWidth = msoArrowheadWidthMedium End With End Sub 'Функция вычисления координаты Y центра ячейки в поинтах Function GetYCellCenter(Ws, row, column) With ThisWorkbook.Worksheets(Ws) ay = 0 For j = 1 To row rh = .Cells(j, column).Rows.Height ay = ay + rh Next j End With GetYCellCenter = ay - rh / 2 ' смещаем в центр ряда End Function 'Функция вычисления координаты X центра ячейки в поинтах Function GetXCellCenter(Ws, row, column) With ThisWorkbook.Worksheets(Ws) ax = 0 For i = 1 To column cw = .Cells(row, i).Columns.Width ax = ax + cw Next i End With GetXCellCenter = ax - cw / 2 ' смещаем в центр колонки End Function ********************************* Файл с макросом в архиве. Удачи |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как нарисовать стрелку ? C++ | zfoxx | Общие вопросы C/C++ | 0 | 10.05.2009 17:20 |
как перейти из одной формы в другую | lusek | Общие вопросы Delphi | 7 | 01.02.2009 14:16 |
Передача данных из одной таблицы в другую, при выборе одной ячейки | MickMick | Microsoft Office Excel | 6 | 06.10.2008 13:57 |
Как разделить число и текст в одной ячейки на две ячейки. | neboskreb | Microsoft Office Excel | 2 | 15.04.2008 19:39 |