Главная страница
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.022 c
1-55534
Checist [root]
2003-07-05 13:57
2003.07.17
Свойства компонента


1-55501
corte ™
2003-07-04 14:58
2003.07.17
как отставить выделение на treeview хотя фокус перешел.


3-55428
kati
2003-06-24 12:07
2003.07.17
SOS Не могу найти ошибку в SQL запросе


1-55616
stalker780
2003-07-03 17:37
2003.07.17
Освобождение окна


14-55719
shark
2003-07-02 11:45
2003.07.17
EXE