Главная страница
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.016 c
1-55652
Balkon
2003-07-04 13:36
2003.07.17
Что понимается под текущей директорией, возвращаемой...


3-55432
RDA
2003-06-22 11:47
2003.07.17
Не обновляется набор данных


3-55457
Weare
2003-06-12 12:06
2003.07.17
Печать из базы штрих-кода


14-55809
Думкин
2003-06-30 06:43
2003.07.17
Окраины империи.


1-55568
default
2003-07-03 01:20
2003.07.17
Примерный код(Temp)