Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.01.2010, 15:00   #1
Kuraj
Пользователь
 
Регистрация: 04.01.2010
Сообщений: 20
По умолчанию Delphi и VBA (создание стрелки)

Здравствуйте.
Такая проблема я не могу подогнать код VBA в delphi он вечно выводит мне ошибку... Кто знает как этот код можно застваить работа в Delphi
Код:
XL.ActiveSheet.Shapes.AddLine(yach1, yach11, yach2, yach22).Line.EndArrowheadStyle:=msoArrowheadTriangle;
Xl это всё норм тип вариант итп не в этом дело а ошибка в msoArrowheadTriangle он не может понять что это и почему это ему присваивают...

Оригинальный код из VBA
Код:
ActiveSheet.Shapes.AddLine(BeginX, BeginY, EndX, EndY).Line.EndArrowheadStyle = msoArrowheadTriangle
Kuraj вне форума Ответить с цитированием
Старый 09.01.2010, 15:55   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,858
По умолчанию

Попробуйте заменить константу msoArrowheadTriangle её значением 2

Код:
XL.ActiveSheet.Shapes.AddLine(yach1, yach11, yach2, yach22).Line.EndArrowheadStyle:=2
EducatedFool вне форума Ответить с цитированием
Старый 09.01.2010, 21:59   #3
Kuraj
Пользователь
 
Регистрация: 04.01.2010
Сообщений: 20
По умолчанию

Спасибо но блин я до сих пор не могу разобрался..
Вот твой код
Код:
Sub ПримерИспользования()
    НарисоватьСтрелку [a6], [d1]
    НарисоватьСтрелку [a9], [d10]
End Sub

Sub НарисоватьСтрелку(ByRef Ячейка1 As Range, ByRef Ячейка2 As Range)
    BeginX = Ячейка1.Left + Ячейка1.Width / 2
    BeginY = Ячейка1.Top + Ячейка1.Height / 2
    EndX = Ячейка2.Left + Ячейка2.Width / 2
    EndY = Ячейка2.Top + Ячейка2.Height / 2

    ActiveSheet.Shapes.AddLine(BeginX, BeginY, EndX, EndY).Line.EndArrowheadStyle = msoArrowheadTriangle
End Sub
2 языкка юзать не так легко блин..у каждого свой синтаксис..

Помоги пожалуйста как мне нартсовать стрелку если у меня есть значения ячеек записанные в 4 переменные.

Ячейки у меня находятся там циклом длинным не буду показывать.. потом значении cells записывает в переменные

yach1:=jj+3;
yach11:=ii; // от какой

yach2:=jj-3; //до какой
yach22:=ii;

Как изменить твой код что бы стрелки рисовались от ячеек..

пытлся делать так

Код:
begin
         yach1 := xl.Sheet[1].cells[yach1,yach11].Left + xl.sheet[1].cells[yach1,yach11].Left / 2;
         yach11:= xl.activsheet.cells[yach1,yach11].Left.Top + xl.activsheet.cells[yach1,yach11].Left.Height / 2   ;
         yach2:= xl.activsheet.cells[yach2,yach22].Left + xl.activsheet.cells[yach2,yach22].Width / 2        ;
         yach22:= xl.activsheet.cells[yach2,yach22].Top + xl.activsheet.cells[yach2,yach22].Height / 2     ;
         XL.ActiveSheet.Shapes.AddLine(yach1, yach11, yach2, yach22).Line.EndArrowheadStyle:=2;      ;
Kuraj вне форума Ответить с цитированием
Старый 09.01.2010, 22:50   #4
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,858
По умолчанию

Цитата:
пытлся делать так

Код:
 yach1 := xl.Sheet[1].cells[yach1,yach11].Left + xl.sheet[1].cells[yach1,yach11].Left / 2;
Я не знаю синтаксиса Delphi, но в логике кода явная ошибка:
в переменную yach1 заносится координата ячейки (в пикселах),
и тут же эта же переменная yach1 используется как позиция ячейки (номер строки)
EducatedFool вне форума Ответить с цитированием
Старый 09.01.2010, 23:33   #5
Kuraj
Пользователь
 
Регистрация: 04.01.2010
Сообщений: 20
По умолчанию

Тогда хотя бы сажи как этот код будет выглядеть в VBA если координаты ячеек берутся из cells а дальше я думаю догоню..

Или даже так как можно с помощью VBA узначть range например активной ячейки..
Просто в твоём коде работа с range а я с cells работаю..

Последний раз редактировалось Kuraj; 09.01.2010 в 23:47.
Kuraj вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
создание и использование семафоров(VBA) vladmc Помощь студентам 1 09.01.2010 03:18
VBA создание списка julius Microsoft Office Excel 7 05.01.2010 16:02
Создание новых vba-модулей в mde-базе yura_yn Microsoft Office Access 4 14.10.2009 12:20
Создание таблицы через VBA mchip Microsoft Office Excel 0 01.10.2009 23:50
Анимирование стрелки... kentlm Мультимедиа в Delphi 2 14.05.2009 02:17