Объявление одномерного массива и задание его начальных значений, при   //этом размер массива автоматически будет равен 4. 4 страница



' проверка является ли текущий блок таблицей

If TextElement.supportsService("com.sun.star.text.TextTable") Then

MsgBox "Текущий блок содержит таблицу"

End If

' проверка является ли текущий блок текста параграфом

If TextElement.supportsService("com.sun.star.text.Paragraph") Then

TextElement.CharHeight = 20

End If

Wend

' окошко с сообщением

msgbox "Конец макроса"

End Sub

Объект enumeration позволяет перебрать все элементы текста в цикле пока эти элементы не закончатся. Операция Enum.nextElement возвращает текущий элемент и переходит к следующему, где переменная Enum есть ссылка на объект созданный вызовом функции Doc.Text.createEnumeration. Очевидна иерархия объектов, в документе Doc есть свойство Text ссылающееся на текстовый объект документа, далее вызывается метод этого объекта createEnumeration, данный метод представляет собой функцию создающую объект Enumeration, при этом сам объект Doc является ссылкой на объект CurrentComponent объекта StarDesktop. В объекте на который ссылается Doc может быть не только свойство Text, но и другие, например, имя файла документа, активность данного документа и т. д., кроме, того в объекте могут быть и методы, например, закрыть документ, открыть, сделать активным, сохранить. StarDesktop представляет собой объект управления всеми текущими открытыми приложениями LibreOffice, CurrentComponent — является текущим активным документов LibreOffice, в общем случае это может быть ссылка и на документ Writer и на документ Calc (электронная таблица) и на документ Base (база данных). Далее для каждого параграфа, предварительно проверив, а действительно ли объект TextElement — параграф, устанавливаются свойства текста: TextElement.CharHeight = 20, что задает размера шрифта абзаца = 20.

 

2.6. Задания Макросы LibreOffice Writer.

1) Написать макросы для очистки формата всего текста документа, выделенного текста, первого абзаца.

Подсказка. Перебрать все параграфы и задать одни и те же общие свойства текста параграфа. Ниже приведен список свойств текста.

• CharFontName (String) – имя выбранного типа шрифта;

Например, TextElement.CharFontName = "Free Times".

• CharColor (Long) – цвет текста;

Например, TextElement.CharColor = RGB(0,255,0) — зеленый цвет

• CharHeight (Float) – высота символа в пунктах (pt);

• CharUnderline (Constant group) – тип подчеркивания (константы в соответствии с

com.sun.star.awt.FontUnderline);

Например, TextElement.CharUnderline = com.sun.star.awt.FontUnderline.WAVE

• CharWeight (Constant group) – вес шрифта (константы в соответствии с

com.sun.star.awt.FontWeight);

• CharBackColor (Long) – фоновый цвет;

• CharKeepTogether (Boolean) – подавление автоматического разрыва строк;

• CharStyleName (String) – имя стиля символа.

Курсив устанавливается в свойстве шрифта CharPosture, присвоив данной переменной значения 2 TextElement.CharPosture = 2 или TextElement.CharPosture = com.sun.star.awt.FontSlant.ITALIС. Кроме italic в FontSlant есть свойства NONE, OBLIQUE, ITALIC DONTKNOW, REVERSE_OBLIQUE, REVERSE_ITALIC.

 

Также свойства абзаца.

• ParaAdjust (enum) – вертикальная ориентация текста (константы в соответствии с

com.sun.star.style.ParagraphAdjust);

• ParaLineSpacing (struct) – межстрочный интервал (структура в соответствии с

com.sun.star.style.LineSpacing); Константы LineSpacingMode PROP - высота пропорциональна, MINIMUM — минимальная высота строки, LEADING — расстояние до предыдущей линии, FIX — фиксированная высота строки.

Например,

v = TextElement.ParaLineSpacing

v.Mode = com.sun.star.style.LineSpacingMode.FIX

v.Height = 300

TextElement.ParaLineSpacing = v

• ParaBackColor (Long) – фоновый цвет;

• ParaLeftMargin (Long) – левое поле в сотых долях миллиметра;

• ParaRightMargin (Long) – правое поле в сотых долях миллиметра;

• ParaTopMargin (Long) – верхнее поле в сотых долях миллиметра;

• ParaBottomMargin (Long) – нижнее поле в сотых долях миллиметра;

• ParaTabStops (Array of struct) – тип и положение позиций табуляции (массив

структур типа com.sun.star.style.TabStop);

• ParaStyleName (String) – имя стиля абзаца.

 

2) Написать макрос для изменения стиля каждой первой и пятой буквы каждого абзаца на курсив, изменить цвет буквы в активном документе и выделенном тексте.

Ниже приведен макрос, который используется для того, чтобы каждое первое слово предложения было выделено жирным шрифтом. При этом создается специальный объект текстовый Сursor, который позволяет осуществлять навигацию по документу, выделяя нужный текст или область нужного текста. Мы можем устанавливать все свойства символов для данного выделенного текста, при этом нужно помнить, что текст не является выделенным в понимании - выделение для копирования, а просто это область текста или блок текста свойства, которого будут меняться если мы будем присваивать какие-то значения свойствам объекта Cursor.

 

Sub Main

Dim Doc As Object

Dim Cursor As Object

Dim Proceed As Boolean

Doc = StarDesktop.CurrentComponent

'создать объект — текстовый курсор для текущего открытого документа

Cursor = Doc.Text.createTextCursor()

' начать цикл

Do

' перейти к концу слова с выделением от текущего положения курсора

Cursor.gotoEndOfWord(True)

'изменить шрифт отмеченного текста на жирный

Cursor.CharWeight = com.sun.star.awt.FontWeight.BOLD

'перейти на следующее предложение без выделения, в переменную procеed занести значение возвращаемой функцией gotoNextSentence, она вернет True если следующее предложение есть и False если нет, т.е. фактически когда завершится текст функцяи вернет значение False

Proceed = Cursor.gotoNextSentence(False)

'перейти на начало текущего предложения без выделения

Cursor.gotoStartOfSentence(False)

'условие выполнения цикла, пока логическая переменная Proceed истинна, то-есть True

Loop While Proceed

msgbox "end"

End Sub

 

Ниже перечислены возможные способы навигации.

 

• goLeft (Count, Expand) – переход на Count символов влево;

• goRight (Count, Expand) – переход на Count символов вправо;

• gotoStart (Expand) – переход к началу текстового документа;

• gotoEnd (Expand) – переход к концу текстового документа;

• gotoRange (TextRange, Expand) – переход к указанному TextRange-объекту;

• gotoStartOfWord (Expand) – переход к началу текущего слова;

• gotoEndOfWord (Expand) – переход к концу текущего слова;

• gotoNextWord (Expand) – переход к началу следующего слова;

• gotoPreviousWord (Expand) – переход к началу предыдущего слова;

• isStartOfWord () – возвращает True, если TextCursor в начале слова;

• isEndOfWord () – возвращает True, если TextCursor в конце слова;

• gotoStartOfSentence (Expand) – переход к началу текущего предложения;

• gotoEndOfSentence (Expand) – переход к концу текущего предложения;

• gotoNextSentence (Expand) – переход к началу следующего предложения;

• gotoPreviousSentence (Expand) – переход к началу предыдущего предложения;

• isStartOfSentence () – возвращает True, если TextCursor в начале предложения;

• isEndOfSentence () – возвращает True, если TextCursor в конце предложения;

• gotoStartOfParagraph (Expand) – переход к началу текущего абзаца;

• gotoEndOfParagraph (Expand) – переход к концу текущего абзаца;

• gotoNextParagraph (Expand) – переход к началу следующего абзаца;

• gotoPreviousParagraph (Expand) – переход к началу предыдущего абзаца;

• isStartOfParagraph () – возвращает True, если TextCursor в начале абзаца;

• isEndOfParagraph () – возвращает True, если TextCursor в конце абзаца.

 

Входной параметр Expand показывает выделяется ли текст при передвижении курсора, значение True — выделяется (отмечается) и False — курсор продвигается и текст не выделяется (не отмечается). Каждая функция при этом возвращает значение true, либо false в зависимости от успешности выполнения, например, если следующего параграфа нет при вызове функции перейти на следующий параграф, то вернется значение false.

Подсказка для выполнения задания:

Использовать gotoStartOfParagraph, .goRight, CharColor , gotoNextParagraph.

 

3) Написать макрос для поиска в тексте запятых и замены их на троеточие.

Ниже приведен пример макроса, который позволяет заменить одни слова на другие, используя свойство параграфа textportion, это текст являющийся частью параграфа, которому присущи свои собственные свойства и характеристики.

 

Sub Main

Dim Doc As Object

Dim Enum1 As Object

Dim Enum2 As Object

Dim TextElement As Object

Dim TextPortion As Object

Doc = StarDesktop.CurrentComponent

Enum1 = Doc.Text.createEnumeration

' цикл по всем абзацам

While Enum1.hasMoreElements

TextElement = Enum1.nextElement

'проверка является ли текстовый элемент параграфом

If TextElement.supportsService("com.sun.star.text.Paragraph") Then

Enum2 = TextElement.createEnumeration

' цикл по всем элементам текущего параграфа (текстовым порциям) TextElement, пока есть еще элементы

While Enum2.hasMoreElements

TextPortion = Enum2.nextElement

' взять строку текста порции текста, произвести замену одной последовательности символов на другую, эту замену возвратит функция replace, произвести присвоение строке содержащейся в порции новой строки возвращенной функцией replace.

TextPortion.String = Replace(TextPortion.String, "you", "U")

TextPortion.String = Replace(TextPortion.String, "o", "2")

Wend

End If

Wend

msgbox s

End Sub

 

4) Сделать макрос для обмена двух абзацев местами.

Можно воспользоваться свойством параграфа TextElement.String и поменять текст в двух параграфах местами. Заведите две переменные TextElement, присвойте им значение первого и последующего параграфа с помощью Enum.nextElement и используя третью строковую переменную произведите обмен.

5) Изменить цвет и размер шрифта каждого абзаца на произвольный. Использовать функцию rnd(), которая возвращает случайное вещественное значение от 0 до 1 и функцию rgb(r,g,b), которая возвращает преобразованное цветовое значение из последовательности интенсивностей красного, зеленого и синего, где каждое значение интенсивности варьируется от 0 до 255. Комбинация интенсивностей основных трех цветов создает для человека иллюзию различных цветов, например, три интенсивности со значениями 255, будет давать белый цвет, все значения 140, дают серый цвет.

6) Изменить цвет и размер шрифта каждого третьего слова в тексте.

Ниже приведен пример макроса, который меняет цвет каждой первой буквы параграфа на красный цвет.

Sub Main

Dim Doc As Object

Dim Cursor As Object

Dim Proceed As Boolean

Doc = StarDesktop.CurrentComponent

Cursor = Doc.Text.createTextCursor()

Do

Cursor.gotoStartOfParagraph(False)

Cursor.goRight(1,True)

Cursor.CharColor = RGB(255,0,0)

Proceed = Cursor.gotoNextParagraph(False)

Loop While Proceed

msgbox "end"

End Sub

 

7) Написать макрос в котором каждая запятая будет заменена на последовательность трех разноцветных точек.

3 Лабораторная №2 Изучение электронных таблиц LibreOffice Calc

Цель работы.

Научиться пользоваться основными функциями в Calc.

3.1. Общие сведения об электронной таблице Calc пакета LibreOffice.

Calc относится к классу систем обработки числовой информации, называемых spreadsheet. Буквальный перевод термина “spreadsheet” c английского языка означает “расстеленный лист (бумаги)”. В компьютерном мире под этим термином подразумевают класс программных средств, именуемых у нас “электронными таблицами”. Ниже на рисунке приведено главное окно Calc.

Области применения электронных таблиц:

- бухгалтерский и банковский учет;

- планирование распределение ресурсов;

- проектно-сметные работы;

- инженерно-технические расчеты;

- обработка больших массивов информации;

- исследование динамических процессов.

Основные возможности электронных таблиц:

- анализ и моделирование на основе выполнения вычислений и обработки данных;

- оформление таблиц, отчетов;

- форматирование содержащихся в таблице данных;

- построение диаграмм требуемого вида;

- создание и ведение баз данных с возможностью выбора записей по заданному критерию и сортировки по любому параметру;

- перенесение (вставка) в таблицу информации из документов, созданных в других приложениях, работающих в среде Windows;

- печать итогового документа целиком или частично.

Преимущества использования ЭТ при решении задач.

- Решение задач с помощью электронных таблиц освобождает от составления алгоритма и отладки программы. Нужно только определенным образом записать в таблицу исходные данные и математические соотношения, входящие в модель.

- При использовании однотипных формул нет необходимости вводить их многократно, можно скопировать формулу в нужную ячейку. При этом произойдет автоматический пересчет относительных адресов, встречающихся в формуле. Если же необходимо, чтобы при копировании формулы ссылка на какую-то ячейку не изменилась, то существует возможность задания абсолютного (неизменяемого) адреса ячейки.

3.2. Структура электронной таблицы

В таблице используются столбцы (256) и строки (16384).

Строки пронумерованы от 1 до 16384, столбцы помечаются латинскими буквами от А до Z, и комбинациями букв АА, АВ,..., IV,

Элемент, находящийся на пересечении столбца и строки называется - ячейкой (клеткой).

Прямоугольная область таблицы называется диапазоном (интервалом, блоком) ячеек. Она задается адресами верхней левой и правой нижней ячеек блока, перечисленными через двоеточие.

Модель ячейки в Calc

Каждая ячейка таблицы имеет следующие характеристики:

- адрес;

- содержимое;

- изображение;

- формат;

- имя;

- примечание (комментарий).

Адрес ячейки - номер столбца и строки. Используется в формулах в виде относительной, абсолютной или смешанной ссылки, а также для быстрого перемещения по таблице.

Calc позволяет использовать стиль ссылок А1.

Например. Пусть в ячейке D3 нужно получить произведение чисел, находящихся в ячейках А2 (второй ряд, первая колонка) и B1 (первый ряд, вторая колонка). Это может быть записано одним из следующих способов:

Адресация указывается как буква обозначающая столбец и цифра обозначающая номер строки.

=A2 * B1

Имя столбца, имя строки, которые будут относительно изменяться, при копировании формулы в другую ячейку.

Смещение по строке, смещение по столбцу, относительно ссылающейся ячейки. Сама формула при копировании не изменяет вид, но ссылается уже на другие ячейки.

Абсолютный вид ссылок

=$A$2 * $B$1

имя столбца, имя строки, которые останутся неизменным, при копировании формулы.

Смешанный вид ссылок

=$A2 * B$1

=A$2 * $B1

Таким образом если перед адресом строки или столбца стоит знак доллара $ это обозначает абсолютную адресацию соответствующей координаты и при копировании она никак не меняется, если же знак доллара не стоит то адрес в формуле будет изменен относительно копируемого адреса на число ячеек по вертикали или по горизонтали равное смещению относительно предыдущей ячейки где находилась копируемая формула.

Содержимым ячейки может быть:

- число (целое со знаком или без (-345), дробное с фиксированной точкой (253,62) или с плавающей точкой (2,5362е+2));

- текст;

- формула.

Формула - всегда начинается со знака “=“ и может содержать: числовые константы, абсолютные или относительные ссылки на адреса ячеек, встроенные функции.

Аргументы функций всегда заключаются в круглые скобки. Стандартные функции можно как ввести с клавиатуры, так и воспользоваться меню Вставка/Функция или соответствующей кнопкой на панели инструментов.

Изображение - то, что пользователь видит на экране монитора.

Если содержимым ячейки является формула, то изображением будет ее значение.

Текст, помещенный в ячейку, может быть “виден” целиком, либо (если соседняя ячейка не пуста), из него видно столько символов, сколько позволяет ширина ячейки.

Изображение числа зависит от выбранного формата. Одно и то же число в разных форматах (дата, процент, денежный и т.д.) будет иметь различное изображение.

Формат ячейки - формат чисел, шрифт, цвет символов, вид рамки, цвет фона, выравнивание по границам ячейки, защита ячейки.

Имя - используется в формулах, как замена абсолютного адреса ячейки. Например, назначив ячейке С3 имя “Произведение” в ячейку D3 можно поместить формулу: =Произведение/3 (вместо формулы =С3/3). В этом случае, при копировании формулы, адрес ячейки меняться не будет.

Примечание - сопроводительный текст к содержимому ячейки. Ввести примечание в ячейку можно с помощью меню Вставка / Примечание. Ячейка, имеющая примечание, отмечается в рабочем листе точкой в правом верхнем углу.

Основными объектами, над которыми производятся действия в электронных таблицах, являются ячейки и диапазоны ячеек (блоки).

Блок - любая прямоугольная область таблицы, в минимальном случае - одна ячейка. Адрес блока задается так: адрес верхней левой ячейки блока, двоеточие, адрес правой нижней ячейки блока.

Примеры блоков: А1 (ячейка); А1:А9 (столбец); В2:Z2 (строка); B2:D4 (прямоугольная область).

Неотъемлемым элементом рабочего поля таблицы является курсор. В ЭТ термин “курсор” используется в следующих случаях:

- курсор ЭТ - жирная рамка вокруг текущей ячейки, перемещается с помощью клавиш управления курсором;

- текстовый курсор - мигающая (или не мигающая) черточка, отмечающая положение текущего символа при редактировании содержимого ячейки.

Для ввода данных можно произвести следующие действия:

1. Установить курсор ЭТ в ячейку, в которой должны быть размещены данные.

2. Набрать данные.

3. Для завершения ввода нажать клавишу <Enter> (при этом курсор ЭТ переместится на строку ниже), либо нажать «зеленую галочку» на панели инструментов (при этом курсор останется в текущей ячейке).

В ячейке могут размещаться данные одного из следующих типов:

1. число

2. формула

3. текст

Текст можно вводить произвольной формы, но если он начинается со знака “=“, то перед ним следует поставить апостроф, чтобы он не воспринимался как формула.

Числа также вводятся в привычном виде. Следует только помнить, что дробные десятичные числа записываются через запятую: 3,5; -0,0045, либо через точку: 3.5; -0.0045, в зависимости от установленных параметров. Изменение вида разделителя целой и дробной части производится в меню Сервис/ Параметры/ Международные.

По умолчанию текстовые поля в Calc выводятся в одну строку. Для того чтобы текст переносился в ячейке в несколько строк:


Дата добавления: 2019-01-14; просмотров: 257; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!