Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

20 Апрель 2021, 23:10 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Вы можете задать вопрос по LibreOffice или Apache OpenOffice без регистрации, используя форму
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: « 1 2   Вниз
  Печать  
Автор Тема: Обрамление ячеек при помощи макроса [РЕШЕНО]  (Прочитано 10742 раз)
0 Пользователей и 1 Гость смотрят эту тему.
BotExtraSens
Участник
**
Offline Offline

Сообщений: 24


« Ответ #47010: 11 Май 2018, 12:20 »

Ваш код Рабочий !
Немного модифицировал ваш код под свои нужды
Код:
Global i As Integer                                     ' Глобальная Переменная сохраняет свои значения  
Global k As Integer                                     ' даже после завершения макроса пишется выше скобки Sub

Sub Test_Borders                                        ' Макрос Имя
  Dim aBorder, oRange, oDoc, oSheets                    ' Переменные
  Dim TableBorder As New com.sun.star.table.TableBorder ' Переменные
  Dim aTopLine As New com.sun.star.table.BorderLine

  Dim oCell as Object                    ' Dim - обьявление переменной oCell  тип Object
  Dim oSheet as Object                   ' Dim - обьявление переменной oSheet тип Object
      
  oDoc = ThisComponent                                  ' Обращение к Текущему Открытому Документу
  oSheets = oDoc.Sheets(2)                              ' Обращение к № Листа Текущего Документа (Индекс 0 это первый Лист,Индекс 1 это Второй Лист и т.д)
  
  oRange  = oSheets.getCellRangeByPosition(0,0,5,5)    
  aBorder = oRange.TableBorder
  
 '****** Оформление ******************************************************************************************************
 
  aTopLine.OuterLineWidth = 20                          ' это толщина внешней линии в случае двойной рамки
  aTopLine.InnerLineWidth = 0                           ' это толщина внутренней линии в случае двойной рамки
  aTopLine.Color = 170000                               ' Цвет Линии
 
  aBorder.TopLine = aTopLine                            ' Обрамление Верхней линии Ячейки
  aBorder.BottomLine = aTopLine                         ' Обрамление Нижней линии Ячейки
  aBorder.LeftLine = aTopLine                           ' Обрамление Левой линии Ячейки
  aBorder.RightLine = aTopLine                          ' Обрамление Правой линии Ячейки
  aBorder.HorizontalLine = aTopLine                     ' Обрамление Горизонтальной линии Ячейки                  
  aBorder.VerticalLine = aTopLine                       ' Обрамление Вертикальной линии Ячейки

'*********** Вычисления **************************************************              
  k = 2  
  i = i + 1                                             ' Увеличение значений Глобальной переменной (i) на одну еденицу , при каждом запуске макроса
 
   oRange  = oSheets.getCellByPosition(i,k)           ' Обращение к Ячейке на Листе   (первый индекс Столбец , второй индекс Строка) - Позицирование
  oRange.Value = i                                   ' Присвоение Ячейке значения глобальной Переменной (i) которое будет отображатся в ячейках
  oRange.TableBorder = aBorder
   oRange.IsTextWrapped = true

End Sub

Возникли Вопросы :
В моем варианте функционировали Шрифты, Размер текста, Цвет Фона и Текста ячейки

Код:
oCell = oSheet.getCellByPosition (i, k)
  oCell.Value = i
  oCell = oSheet.getCellByPosition (i, k)
  oCell.Value = к
  oCell.CellBackColor = RGB(0, 255, 0)   ' Фон ячейки                          (зеленый)
  ocell.CharColor = RGB(255, 0, 0)       ' Цвет Чисел, Букв, Символов, Знаков  (красный).
  ocell.CharFontName = "Courier"         ' Шрифт                                Courier
  ocell.CharFontName = "Bold"            ' Выделение шрифта                     (Жирный)        
  ocell.CharHeight = 14                  ' Высота Чисел, Букв, Символов, Знаков
[/color]
пробовал прикрутить к вашему Макросу , он начал Ругаться (
Как  прикрутить без конфликта чтоб как в посте ниже ?


« Последнее редактирование: 11 Май 2018, 12:45 от BotExtraSens » Записан
Страниц: « 1 2   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!