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

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Закрыто
Алексей- Софт-Центр
Ветеран
Сообщения: 390
Зарегистрирован: 26 Август 2009, 12:41
Откуда: Moscow
Контактная информация:

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

Сообщение Алексей- Софт-Центр »

Добрый день!
Кларион 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

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

Алексей
Аватара пользователя
Admin
Администратор
Сообщения: 4010
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 53 раза
Поблагодарили: 33 раза
Контактная информация:

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

Сообщение Admin »

Макрос пробовал записать и посмотреть код?
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Алексей- Софт-Центр
Ветеран
Сообщения: 390
Зарегистрирован: 26 Август 2009, 12:41
Откуда: Moscow
Контактная информация:

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

Сообщение Алексей- Софт-Центр »

Добрый день!
Так и делал, получил типа:
MSExcel1.With('Selection.Borders((xlEdgelift))')
MSExcel1.SetProperty('LineStyle',xlContinuous)
MSExcel1.SetProperty('ColorIndex',0)
MSExcel1.SetProperty('TintAndShade',0)
MSExcel1.SetProperty('Weight',xlThick)
MSExcel1.EndWith()

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

Алексей
gromov
Старожил
Сообщения: 280
Зарегистрирован: 11 Февраль 2009, 8:41
Откуда: г. Анапа
Поблагодарили: 3 раза

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

Сообщение 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

М.б. здесь есть что-то лишнее, но, скорее всего, я это взял из макроса. Уже не помню. Сделано по принципу: работает и х. с ним.
Алексей- Софт-Центр
Ветеран
Сообщения: 390
Зарегистрирован: 26 Август 2009, 12:41
Откуда: Moscow
Контактная информация:

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

Сообщение Алексей- Софт-Центр »

Добрый день!
Спасибо, все работает.
. Теперь буду соотносить с office template.

Алексей
gromov
Старожил
Сообщения: 280
Зарегистрирован: 11 Февраль 2009, 8:41
Откуда: г. Анапа
Поблагодарили: 3 раза

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

Сообщение gromov »

Лет эдак пять назад я пытался использовать OT, но иногда из-за них программа валилась. Разбираться не стал. Сделал несколько функций, с ними и работаю. И нисколько не жалею, что отказался от OT.
Ал
✯ Ветеран ✯
Сообщения: 1039
Зарегистрирован: 08 Июль 2005, 6:48
Откуда: Россия
Поблагодарили: 1 раз

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

Сообщение Ал »

Алексей- Софт-Центр писал(а):Добрый день!
Спасибо, все работает.
. Теперь буду соотносить с 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)
Алексей- Софт-Центр
Ветеран
Сообщения: 390
Зарегистрирован: 26 Август 2009, 12:41
Откуда: Moscow
Контактная информация:

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

Сообщение Алексей- Софт-Центр »

Добрый день!
Спасибо огромное. Все работает.
Тему можно закрыть.

Алексей
Закрыто