Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.07.17;
Скачать: CL | DM;

Вниз

Доступ к   Найти похожие ветки 

 
3APA3A   (2003-07-05 14:16) [0]

Записал в Excel вот такой вот макрос:

Sub Macro1()
Range("C2:F8").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Selection.Borders(xlEdgeLeft).LineStyle = xlNone
Selection.Borders(xlEdgeTop).LineStyle = xlNone
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
Selection.Borders(xlEdgeRight).LineStyle = xlNone
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
End Sub

Это просто выделение области и рисование ей нижней границы...

А в Delphi я этого найти не могу...
пишу

var Excel:olevaliant;
begin
...
excel:=createoleobject("Excel.Application");
...
Но вот выделить ячейку и обратится к выделенному у меня не получается... Excel.Range.Selection не работает...


 
3APA3A ©   (2003-07-05 14:28) [1]

То есть, я хочу нарисовать, допустим, нижнюю границу ячейки (X,Y)... Вот вся суть вопроса...


 
Романов Р.В. ©   (2003-07-05 15:27) [2]

procedure SetEdge(Range: OleVariant);
begin
Range.Borders[xlEdgeLeft].LineStyle := xlContinuous;
Range.Borders[xlEdgeLeft].Weight := xlMedium;
Range.Borders[xlEdgeTop].LineStyle := xlContinuous;
Range.Borders[xlEdgeTop].Weight := xlMedium;
Range.Borders[xlEdgeBottom].LineStyle := xlContinuous;
Range.Borders[xlEdgeBottom].Weight := xlMedium;
Range.Borders[xlEdgeRight].LineStyle := xlContinuous;
Range.Borders[xlEdgeRight].Weight := xlMedium;
if Range.Columns.Count > 1 then
begin
Range.Borders[xlInsideVertical].LineStyle := xlContinuous;
Range.Borders[xlInsideVertical].Weight := xlThin;
end;
if Range.Rows.Count > 1 then
begin
Range.Borders[xlInsideHorizontal].LineStyle := xlContinuous;
Range.Borders[xlInsideHorizontal].Weight := xlThin;
end;
end;

function SetRange(WorkBook: OleVariant; y1, x1, y2, x2: Integer): OleVariant;
begin
Result := WorkBook.WorkSheets[1].Range[
WorkBook.WorkSheets[1].Cells[y1, x1],
WorkBook.WorkSheets[1].Cells[y2, x2]];
end;



Вызов функции:
SetEdge(SetRange(WorkBook, 1, 1, 3, 13));


 
3APA3A ©   (2003-07-05 15:53) [3]

tnx... отлично работает...



Страницы: 1 вся ветка

Текущий архив: 2003.07.17;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.013 c
9-55380
Esc
2003-01-11 18:18
2003.07.17
Вопрос по OpenGL


3-55426
Rel_
2003-06-24 08:48
2003.07.17
запрос SQL


6-55694
Python
2003-05-13 17:11
2003.07.17
Какой протокол использовать?


3-55406
Karburator
2003-06-23 21:38
2003.07.17
Определить ключевое поле


1-55582
Zn
2003-07-02 16:14
2003.07.17
Переполнение стека при завершении программы.