Страница 1 из 1

Office temlate - нарисовать(обрамить) ячейку

Добавлено: 21 Декабрь 2012, 12:49
Алексей- Софт-Центр
Добрый день!
Кларион 6.3.
Использую "with" для выравнивания данных в ячейке Excel (как в примере доки) - все работает.
! Example code to emulate the "with...endwith" VBA syntax
LOOP I# = 15 TO 18
MSExcel1.Select(I#,1)
MSExcel1.With('Selection.')
MSExcel1.SetProperty('HorizontalAlignment',xlRight)
MSExcel1.SetProperty('VerticalAlignment',xlTop)
MSExcel1.EndWith()
END!LOOP

Не могу сделать такую же конструкцию для заливки ячейки цветом и (более важное) обрисовки ячейки.

Алексей

Re: Office temlate - нарисовать(обрамить) ячейку

Добавлено: 21 Декабрь 2012, 16:05
Admin
Макрос пробовал записать и посмотреть код?

Re: Office temlate - нарисовать(обрамить) ячейку

Добавлено: 21 Декабрь 2012, 16:13
Алексей- Софт-Центр
Добрый день!
Так и делал, получил типа:
MSExcel1.With('Selection.Borders((xlEdgelift))')
MSExcel1.SetProperty('LineStyle',xlContinuous)
MSExcel1.SetProperty('ColorIndex',0)
MSExcel1.SetProperty('TintAndShade',0)
MSExcel1.SetProperty('Weight',xlThick)
MSExcel1.EndWith()

Вот эта конструкция и не работает

Алексей

Re: Office temlate - нарисовать(обрамить) ячейку

Добавлено: 21 Декабрь 2012, 20:22
gromov
OleObj{'Range("' & Rng & '").Select'}
OleObj{'Selection.Borders(' & xlDiagonalDown & ').LineStyle'} = xlNone
OleObj{'Selection.Borders(' & xlDiagonalUp & ').LineStyle'} = xlNone

OleObj{'Selection.Borders.LineStyle'} = xlContinuous
OleObj{'Selection.Borders.Weight'} = xlThin
OleObj{'Selection.Borders.ColorIndex'} = xlAutomatic

М.б. здесь есть что-то лишнее, но, скорее всего, я это взял из макроса. Уже не помню. Сделано по принципу: работает и х. с ним.

Re: Office temlate - нарисовать(обрамить) ячейку

Добавлено: 22 Декабрь 2012, 19:00
Алексей- Софт-Центр
Добрый день!
Спасибо, все работает.
. Теперь буду соотносить с office template.

Алексей

Re: Office temlate - нарисовать(обрамить) ячейку

Добавлено: 23 Декабрь 2012, 10:31
gromov
Лет эдак пять назад я пытался использовать OT, но иногда из-за них программа валилась. Разбираться не стал. Сделал несколько функций, с ними и работаю. И нисколько не жалею, что отказался от OT.

Re: Office temlate - нарисовать(обрамить) ячейку

Добавлено: 23 Декабрь 2012, 12:54
Ал
Алексей- Софт-Центр писал(а):Добрый день!
Спасибо, все работает.
. Теперь буду соотносить с office template.

Код: Выделить всё

       MSExcel9.Select('A'&row+1&':G'&row+1)
        MSExcel9.SetFontSize(10)
        MSExcel9.SetWrapText(True) !Excel.Selection.WrapText:=true;
        MSExcel9.SetProperty('Selection.Interior.ColorIndex', 4) ! сделать зеленый фон
        MSExcel9.SetProperty('Selection.VerticalAlignment',-4160) !

        MSExcel9.SetProperty('Selection.Borders(' & xlDiagonalDown & ').LineStyle', xlNone)
        MSExcel9.SetProperty('Selection.Borders(' & xlDiagonalUp & ').LineStyle', xlNone)
        MSExcel9.SetProperty('Selection.Borders.LineStyle', xlContinuous)
        MSExcel9.SetProperty('Selection.Borders.Weight', xlThin)
        MSExcel9.SetProperty('Selection.Borders.ColorIndex', xlAutomatic)

Re: Office temlate - нарисовать(обрамить) ячейку

Добавлено: 23 Декабрь 2012, 20:04
Алексей- Софт-Центр
Добрый день!
Спасибо огромное. Все работает.
Тему можно закрыть.

Алексей