
Информатика
.pdf111
или комбинацией клавиш "Ctr+F9", фигурные скобки вводятся автоматически, не вручную), вначале указывается тип поля, затем (через пробел) вводятся управляющие ключи (признак ключа – знак целого деления "\"). Посмотреть на результат действия поля можно, нажав F9 или комбинацию "Shift+F9".
Поле Symbol используется для вставки символа в коде ANSI. Его ключи:
\а – код рассматривается как знак ANSI,
\f "шрифт" – вставляет имя используемого шрифта,
\h – вставляется символ без изменения межстрочного интервала, \sN – устанавливается размер знака в N пунктов,
\u – используется кодировка Unicod.
Пример 1. Поле {Symbol \83 \f"Symbol"\s40} помещает в текст знак суммы (83 - ее код в шрифте "Symbol") высотой в 40 пунктов
(≈ 12 мм).
Поле Advance сдвигает следующую часть строки относительно текущей позиции или в заданную абсолютную позицию. Ключи поля \uN, \dN, \lN, \rN сдвигают текст на N позиций соответственно вверх, вниз, влево и вправо относительно исходного положения. Ключ \xN помещает текст на N пунктов от левого края, \yN сдвигает текст в N-ю позицию вверх относительно текущей строки. Это поле бывает полезно для выравнивания строк при вставке формул.
Поле Eq – аналог пакета Equation для вставки формул в текст. Это поле имеет богатый набор ключей, позволяющий вставить в текст практически любую формулу. Перечислим основные ключи.
\а( ) – вставляет в текст "матрицу" (прямоугольную таблицу), элементы которой, разделенные точкой с запятой, записываются после ключа в круглых скобках. Есть добавочные ключи:
\al, \ac, \ar – выравнивание элементов матрицы по левому краю, по центру или по правому краю,
\coN – матрица имеет N столбцов (по умолчанию – один), \vsN – устанавливает интервал между строками N пунктов, \hsN – устанавливает интервал между столбцами N пунктов.
\b( ) – помещает следующую в круглых скобках информацию в скобки (круглые, квадратные, фигурные, прямые), при этом величина скобок "подстраивается" под формулу. Подключи: \lc\s – s символ левой скобки,
\rc\s - s символ правой скобки,
\bc\s – скобки s ставятся слева и справа. \f(числитель; знаменатель) – вставка дроби.
\i(a; b; f) – вставляет знак определенного интеграла с пределами a и b от функционального выражения f. Дополнительно: \su – вместо интеграла вводится знак суммы,
112
\pr - вместо интеграла вводится знак произведения,
\in – пределы интегрирования помещаются справа от знака интеграла (суммы),
\fc\s – вместо знака интеграла, суммы или произведения можно использовать произвольный символ s.
\l(список) – рассматривает список как один элемент.
\о(эл.1; эл.2) – размещает один элемент поверх другого. Ключи \al, \ac, \ar выравнивают элементы по левому краю, по центру
или по правому краю соответственно.
\r(степ.; выр.) – записывает корень указанной степени из выражения (если степень не указана, корень квадратный).
\s( ) – выражение записывается как верхний или нижний индекс (без изменения размера). Дополнительные ключи:
\upN, \doN – смещают следующий в скобках текст на N пунктов вверх или вниз,
\aiN, \diN – увеличивают интервал над или под строкой на N пунктов.
\x( ) – помещает следующее в скобках выражение в рамку. Ключи \to, \bo, \le, \ri – рисуют границу рамки сверху, снизу, слева
или справа соответственно.
Поля могут быть вложены друг в друга, ключи сохраняют шрифт и размер символов, так что в формулах могут использоваться все прелести форматирования. Главное – не забывать о соответствии открывающих и закрывающих круглых скобок. Приведем несколько примеров использования полей разной сложности.
|
Пример 2. Определитель |
a b |
|
|
|
|||||
|
|
|
можно создать с помощью поля |
|||||||
|
|
|
|
|
|
c d |
|
|
|
|
{eq \b\bc\|(\a\ac\co2\hs4(a;b;c;d))}, а систему уравнений |
||||||||||
|
ax |
2 |
|
3 |
|
|
|
|
|
|
|
|
+ 2xy = y |
|
|
|
|
|
|||
|
|
|
|
|
|
можно записать с помощью поля |
||||
|
x |
3 |
|
2 |
+ 1)(y - x) + 5 = 0 |
|||||
|
|
- (a |
|
|
|
|
|
|||
|
|
{eq \b\lc\{( \a\al(ax2 + 2xy = y3;x3 - (a2 + 1)(y - x) + 5 = 0))}. |
||||||||
|
|
|
|
|
n |
|
|
u∙sin pi |
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
p |
||
|
Пример 3. Выражение USi |
v + |
можно ввести с помощью |
|||||||
|
|
|
|
|
i = 1 |
|
cos p∙i |
|||
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
поля:
{eq \s\up30(\i\fc\U (i = 1;n; \s\do26(\s\do6(Si )\b\bc\((\f(u∙sin pi;v + \f(p;cos p∙i))))))}.

113
|
|
n + 1 |
|
|
Пример 4. Выражение |
2 + n 2 + … + 2 |
можно ввести с по- |
|
|
|
|
|
|
n корней |
|
мощью поля { eq \x\to\le\bo\ri(\o(\r(n + 1;2 + \r(n;2 + … + \r(2)));\s\do10 |
|||
(\o( |
; \s\do8( n корней)))))}. |
|
|
|
Пример 5. Этот довольно экзотический пример многократного |
O∏∞
xn
наложения символов xn +1 можно построить с помощью подходя-
n = 1
щего подбора шрифтов и размеров, используя, например, поле
{eq \s\do20(\o\ac(O;\s\up18(\o\ac(\s\up4(\a\ac\vs30(∞;n = 1));
\o\ac(∏;\s\up4(\f(xn;xn +1)))))))}.
Еще одной особенностью полей является то, что в указанную позицию поля можно вставить не только элемент произвольного шрифта, но и произвольный рисунок. Это позволяет конструировать достаточно сложные комбинации формул и схем, что существенно расширяет возможности этого инструмента. Каждый созданный таким образом продукт является элементом текста документа, легко редактируется и подчиняется всем основным методам форматирования.
Отметим, что в практике обработки документов можно использовать более семидесяти различных полей (с ними можно ознакомиться по мере необходимости). Среди оставшихся обратим внимание еще на три. Это поле Hyperlink, в котором в кавычках указывается адрес ссылки на текстовый или графический источник (ключи \l – элемент документа для перехода, \m – добавляются координаты в схему сервера, \n – открывается конечный документ в новом окне и др.). Поле XE "текст" [ключи], которое определяет текст и номер страницы для вкючения в предметный указатель (ключи \b – указывает жирный шрифт, \i – страницы записываются курсивом, \r – указывается диапазон страниц по закладке \t "текст"- вместо страниц указывается текст). Поле Macrobutton позволяет щелчком мыши по выбранному тексту запускать макрос. Структура поля такова: {Macrobutton имя (макро-
114
са) сообщение} (разделителями являются пробелы), где сообщением является либо текст, остающийся на месте поля (в одной строке), либо картинка-иконка. Это очень полезное поле для программируемого изменения в документе.
Пример 6. Пусть в документе на щелчок мышкой по тексту "ТукТук!" появляется окно с налписью "Кто там?". Дадим макросу имя Rr. Через меню "Разработчик" → "Макросы" → Имя "Rr" → "Создать" заходим в VBA и записываем в тело макроса всего одну крманду:
MsgBox "Кто там?", vbQuestion,"". В документ вводим поле
{Macrobutton Rr Тук-тук!}, нажатие клавиши F9 возврашает нас в текстовый режим – поле скрывается и в тексте остается только фраза "Тук-тук!". Щелчок мышкой по ней запустит макрос и на экране появится вопрос "Кто там?".
3.2.3. Закладки
Специфическим элементом вставки является закладка (меню "Вставка" → "Ссылки" → "Закладка", в диалоговом окне вводится имя и положение закладки). Закладка помечает место в документе, позволяет при необходимости легко отыскивать помеченные места, изменять текст в соответствии с какими-то условиями.
Пример. Рассмотрим следующий текст.
И наступит день…
Уважаемый г-н, настоящим сообщаю, что в ближайшее время Вас ожидают замечательные и интересные события. Во-первых, Вы почувствуете в себе необычайный душевный подъем, стремление сделать как можно больше и как можно лучше. Во-вторых, пройдет совсем небольшое время (может быть 2 месяца) и Вы сможете насладиться увлекательным путешествием в свое прошлое и будущее. Великолепные горизонты откроются перед Вами, и многие будут восхищаться Вами и даже завидовать Вам.
Настроим текст в соответствии с вводимой информацией. Заголовку "И наступит день..." назначим макрос Profet, вставив поле
{Macrobutton Profet И наступит день...}. Выделим часть слова
"Уважа" и пометим ее меткой "one", выделив слово "месяца", пометим его меткой "two". Далее, через меню "Разработчик" → "Макросы" → Имя "Profet" → "Создать" заходим в VBA и записываем в тело макроса код:
Sub Profet()
′макрос, изменяющий текст, ориентируясь на закладки
′
Dim t As String, s As String * 1, r As Byte Randomize Timer
t = InputBox("Введите свою фамилию", "Информация к тексту", "")
If t = "" Then Exit Sub '***ничего не меняется, если ввод пустой
115
'***анализ последней буквы фамилии и выбор случайного числа s = Right(t, 1): r = 1 + 50 * Rnd
Selection.GoTo what:=wdGoToBookmark, Name:="one" '***переход к первой метке
With ActiveDocument.Bookmarks |
|
'***метка найдена |
.DefaultSorting = wdSortByName |
|
|
.ShowHidden = True |
|
|
With Selection |
|
|
If (s = "а") Or (s = "я") Then |
'***если фамилия кончается на а-я (женская) |
|
.MoveRight unit:=wdCharacter, Count:=3 |
'***сдвиг на 3 позиции вправо |
|
.Delete unit:=wdCharacter, Count:=2 |
'***удаляем два символа |
|
.TypeText Text:="ая" |
|
'***вставляем текст: ая |
.MoveRight unit:=wdCharacter, Count:=3 |
'***сдвиг вправо на 3 позиции |
|
.Delete unit:=wdCharacter, Count:=1 |
'***удаляем один символ |
|
.TypeText Text:="жа " & t |
|
'***вводим текст: жа и фамилию |
Else |
|
|
.MoveRight unit:=wdCharacter, Count:=9 |
'***пропускаем 9 позиций |
|
.TypeText Text:=" " & t |
'***и вставляем фамилию (мужскую) |
|
End If |
|
|
End With End With
Selection.GoTo what:=wdGoToBookmark, Name:="two" '***переход ко второй метке
With ActiveDocument.Bookmarks |
'***метка найдена |
.DefaultSorting = wdSortByName |
|
.ShowHidden = True |
|
With Selection |
|
.MoveLeft unit:=wdCharacter, Count:=2 |
'***сдвиг влево на 2 позиции, |
.TypeBackspace |
'***со стиранием символов |
.TypeText Text:=Format(r) |
'***вставка случайного числа |
End With |
|
End With |
|
End Sub . |
|
Пусть (после щелчка по заголовку) введена фамилия "Суркова". Запущенный макрос изменит текст следующим образом.
Уважаемая г-жа Суркова, настоящим сообщаю, что в ближайшее время Вас ожидают замечательные и интересные события. Во-первых, Вы почувствуете в себе необычайный душевный подъем, стремление сделать как можно больше и как можно лучше. Во-вторых, пройдет совсем небольшое время (может быть 4 месяца) и Вы сможете насладиться увлекательным путешествием в свое прошлое и будущее. Великолепные горизонты откроются перед Вами, и многие будут восхищаться Вами и даже завидовать Вам.
3.3. ТАБЛИЦЫ
Таблицы в документ вставляются, в основном, двумя способами: рисованием и по шаблону (меню "Вставка" → "Таблица"). Возможно копирование таблиц Excel. В каждой ячейке таблицы текст может быть форматирован независимо от остальных. Щелкнув мышкой (правой кнопкой) по левому верхнему углу таблицы (курсор принимает

116
вид крестика), или в меню "Макет", можно вызвать меню различных преобразований таблицы (вставка и удаление строк, столбцов, разбиение или объединение ячеек, вставка подтаблиц, и т.д.). Выбрав в нем "Свойства таблицы", можно, далее, выбрать стиль оформления таблицы, настроить границы ее и отдельных ячеек, организовать заливку выбранным цветом, настроить ее положение по отношению к окружающему тексту.
Таблица, как элемент рабочего листа, может играть роль контейнера внедренных элементов (например, рисунков, формул, и др.), а также помогает в оформлении текстовых элементов документа. Например, если желательно текст страницы оформить в виде четырех (приблизительно) одинаковых кусков в два ряда (выравнивание в этом случае весьма непросто), то можно вставить таблицу из двух строк и двух столбцов, вписать в нее необходимый текст, а затем в свойствах таблицы ("Границы и линии" или меню "Конструктор") убрать все границы. В каждой ячейке можно выполнить необходимое выравнивание. В результате получим требуемое оформление текста без дополнительных усилий.
Ячейки таблицы допускают вставку формул для простейшего ав-
томатического расчета: "Вставка" → "Формула" или "Работа с таб-
лицами" → "Макет"→ "Данные" → "Формула fx". Набор возмож-
ных функций можно найти в диалоговом окне вставки (см. рис. 38). Функции обрабатывают содержимое вышележащих ячеек таблицы (аргу-
мент функции Above) или расположенных левее (аргумент Left). При изменении табличных данных поля формул следует обновлять.
Пример 1. В табл. 9 введем в по- |
|
|
следней строке формулы: во втором |
Рис. 38 |
|
столбце Sum(Above), в 2, 4, 5 - |
||
|
Average(Above). В последний столбец введем формулы , Product(Left), Product(Left) и Sum(Above). Результат вычислений – в табл. 9.
|
|
|
|
|
|
|
|
|
|
Таблица 9 |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Наим. |
|
Кол-во |
|
цена |
|
Скидка |
|
Наценка |
|
|
Сумма |
|
|
товара |
|
|
|
поставщика |
|
продажи |
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|||
|
Пальто |
|
4 |
|
6800 |
|
0,9 |
|
1,8 |
|
|
44064 |
|
|
Сапоги |
|
9 |
|
4200 |
|
0,75 |
|
2,1 |
|
|
59535 |
|
|
Всего |
|
13 |
|
5500 |
|
0,83 |
|
1,95 |
|
|
103599 |
|
117
Более надежная (хотя, возможно, не более простая) обработка табличных данных может быть выполнена программным способом (с помощью макросов).
Пример 2. Модель авторынка. Построим таблицу для пяти марок автомобилей шести возрастных категорий с указанием цены нового автомобиля. Будем считать, что с возрастом х лет цена изменяется в
|
1 |
|
3x2 |
|
|
|
ax3 |
|
|
k(x) = 1 + |
|
sin |
|
|
|
- |
|
|
раз (a = 0.0003). Количество автомоби- |
2 |
|
3 |
1+ax |
3 |
|||||
|
35+2x |
|
|
|
|
|
лей на базе случайно, но не более 10 штук каждой марки. Следует посчитать суммарную стоимость авто каждой марки. Построим таблицу 15×7, заполним вторую строку и первый столбец таблицы. Для указания года выпуска объединим две соседние ячейки в одну. Заголовку таблицы "Авторынок" назначим макрос Auto: {Macrobutton Auto Авторынок}. Код макроса запишем в виде (комментарии помогут разобраться в логике программы, ссылка на ячейку таблицы – Cell(i, j), индексация начинается с единицы):
Sub Auto()
' Auto Macros
Dim i As Byte, j As Byte, k As Single, x As Single, p As Integer
Dim price() As Integer |
|
|
'***массив цен |
Const m As Byte = 15 |
|
|
'***общее число строк в таблице |
Const n As Byte = 7 |
|
|
'***число столбцов таблицы |
Const a As Single = 0.0003 |
|
|
|
ReDim price(3 To n) |
|
|
'***нумерация ячеек цен начинаеися с 3 |
Randomize Timer |
|
'***подготовка генерации случайных чисел |
|
With ActiveDocument.Tables(1) |
'***следует указывать номер рабочей таблицы |
||
For j = 3 To n |
|
|
'***перебор строк |
.Cell(2, j - 1).Select |
'***выбор ячейки: во второй строке на 1 ячейку меньше |
||
price(j) = Val(Selection.Text) |
|
'***считывание цен из таблицы |
|
Next |
|
|
|
For i = 3 To m - 1 |
|
|
'***подготовка информации по строкам |
If i And 1 Then |
|
|
|
.Cell(i, 1).Select |
'***выбор ячейки: при оъединении остается первый индекс |
||
p = Val(Selection.Text) |
|
'***считывание года выпуска |
|
End If |
|
|
|
For j = 3 To n |
|
|
|
.Cell(i, j).Select |
|
|
'***выбор ячейки для записи информации |
With Selection |
|
|
|
.Cut |
'***очистка содержимого (это не делается автоматически!) |
||
If i And 1 Then |
|
|
|
.InsertAfter Str(Int(11 * Rnd)) |
'***случайное число в нечетную ячейку |
||
Else |
|
|
|
x = 2012 - p: k = x ^ 3 |
|
'***вычисление множителя к(х) |
|
k = 1 + 0.5 * Sin(3 * x ^ 2 / (35 + 2 * k)) - a * k / (1 + a * k) |
|||
.InsertAfter Str(k * price(j)) |
'***запись цены в четную ячейку |
||
End If |
|
|
|
End With
Next
Next

|
|
|
|
|
|
|
118 |
|
|
|
For j = 3 To n |
|
|
|
|
|
|
||||
|
k = 0 |
|
|
|
'***подсчет окончательной суммы (по столбцам) |
|||||
|
For i = 3 To m - 1 Step 2 |
|
|
|
|
|
||||
|
.Cell(i, j).Select |
|
|
|
'***выбор ячейки |
|||||
|
p = Val(Selection.Text) |
|
|
'***считывание содержимого |
||||||
|
.Cell(i + 1, j).Select |
|
|
|
|
|
||||
|
x = Val(Selection.Text) |
|
|
|
'***считывание цены |
|||||
|
k = k + p * x |
|
|
|
|
'***суммирование |
||||
|
Next |
|
|
|
|
|
|
|
|
|
|
.Cell(m, j - 1).Select |
|
'***выор ячейки для записи суммы |
|||||||
|
With Selection |
|
|
|
|
|
|
|||
|
.Cut: .InsertAfter Str(k) |
|
|
'***очистка и запись результата |
||||||
|
End With |
|
|
|
|
|
|
|||
|
Next: .Cell(1, 1).Select |
|
|
|
|
|
||||
End With |
|
|
|
|
|
|
|
|
||
End Sub . |
|
|
|
|
|
|
|
|
||
Окончательный результат – см. табл. 10. |
|
|
||||||||
|
|
|
|
|
|
|
|
Таблица 10. Авторынок |
||
|
|
|
|
|
|
|
|
|
|
|
|
Марка |
|
|
... |
... |
|
... |
.... |
... |
|
|
автомобиля |
|
|
|||||||
|
|
|
|
|
|
|
|
|||
|
Цена за новую |
|
500 |
1250 |
|
399 |
1800 |
880 |
||
|
(тыс. руб.) |
|
|
|||||||
|
|
|
|
|
|
|
|
|||
|
2010 |
|
Шт. |
|
4 |
2 |
|
9 |
2 |
1 |
|
|
Цена |
|
557.0851 |
1392.713 |
|
444.5539 |
2005.506 |
980.4698 |
|
|
|
|
|
|
||||||
|
2005 |
|
Шт. |
|
1 |
8 |
|
2 |
1 |
0 |
|
|
Цена |
|
503.9687 |
1259.922 |
|
402.167 |
1814.287 |
886.9849 |
|
|
|
|
|
|
||||||
|
2000 |
|
Шт. |
|
10 |
4 |
|
6 |
10 |
5 |
|
|
Цена |
|
360.1518 |
900.3795 |
|
287.4011 |
1296.547 |
633.8672 |
|
|
|
|
|
|
||||||
|
1995 |
|
Шт. |
|
8 |
8 |
|
0 |
10 |
9 |
|
|
Цена |
|
224.0623 |
560.1556 |
|
178.8017 |
806.6241 |
394.3495 |
|
|
|
|
|
|
||||||
|
1990 |
|
Шт. |
|
9 |
5 |
|
9 |
9 |
9 |
|
|
Цена |
|
136.2109 |
340.5273 |
|
108.6963 |
490.3593 |
239.7312 |
|
|
|
|
|
|
||||||
|
1980 |
|
Шт. |
|
10 |
0 |
|
8 |
3 |
10 |
|
|
Цена |
|
57.87456 |
144.6864 |
|
46.1839 |
208.3484 |
101.8592 |
|
|
|
|
|
|
||||||
|
ИТОГО |
|
9930.97 |
22650.2 |
|
7877.464 |
31895.29 |
10875.12 |
В общем, обращение с ячейками таблицы Word, как носителями информации, мало чем отличается от ячеек Excel. Прежде всего, ячейка (Cell) в Word – это дочерний элемент таблицы (Tables), которая, в свою очередь, является дочерним элементом документа (ActiveDocument) – эта иерархия должна учитываться при программировании. Далее, все изменения возможны только в активной ячейке (поэтому ее следует выбирать – Select). Наконец, при записи в ячейку (текстовой информации) прежнее содержание не исчезает автоматически, его можно убрать (Cut) или к нему добавить текст (TypeText, InsertBefore или InsertAfter). Содержимое ячейки возвращается свойством Text. Кроме того, русификация приложения имеет свою отрицательную сторону: при преобразовании типов число строка функция Format не преобразует десятичную точку в запятую (и

119
наоборот), что нарушает вычисления, в этой ситуации лучше использовать функцию Str (это замечание относится и к Excel). При работе с большими таблицами использование макросов для автоматических расчетов, безусловно, предпочтительнее вставки формул.
Вячейки таблицы можно вставлять поля формул непосредственно
вкодах макроса. Например, для вставки в выбранную ячейку таблицы поля {eq \...} достаточно набрать код
With Selection
.Fields.Add Range := Selection.Range, Type := wdFieldEmpty, _
PreserveFormatting := False |
'***ввод фигурных скобок поля |
.Delete Unit := wdCharacter, Count := 1 |
|
.TypeBackspace |
'***удаление лишних пробелов |
.TypeText "eq \..." |
'***ввод формулы |
.Fields.Update |
'***преобразование к формату текста |
End With .
Если в формуле (или любом вводимом тексте) встречается символ, отсутствующий в раскладке клавиатуры, его можно вставить в текст, указав код в функции Chrw(код). Код можно узнать в таблице символов меню "Вставка" →"Символ". Свойства шрифта, такие как верхний или нижний индексы, наклон,подчеркивание, и др., включаются прямым указанием свойства (через точку) и (если необходимо) присваиванием встроенной константы wdToggle (включить). Например, такой текст "log 2x-1 x2+3" в выбранную ячейку можно ввести кодом:
With Selection |
|
.TypeText "log" |
|
.Font.Subscript = wdToggle |
'***включен нижний индекс |
.TypeText " 2x-1 " |
|
.Font.Subscript = wdToggle |
'***выключен нижний индекс |
.TypeText "x" |
|
.Font.Superscript = wdToggle |
'***включен верхний индекс |
.TypeText "2" |
|
.Font.Superscript = wdToggle |
'***выключен верхний индекс |
.TypeText "+3" |
|
End With . |
|
Пример 3. Пусть щелчком мыши по заголовку таблицы "Тест" в первой ячейке таблицы случайным образом появляется неравенство для решения (решение предлагается записать в другую ячейку) из за-
данного набора формул: x2-3x+2 > 0, sin(2x)tg(x) > 1, 4log2x-1x < x, x-3
x2-1
x3-4x2+2x+1 < 0 . В поле Macrobutton назначим заголовку таблицы
макрос Test, в котором вырабатывается целое случайное число k: 0 < k < 5. В блоке:
120
With selection Select Case k
Case 1: ‹вставка первой формулы›
...
Case 4: ‹вставка четвертой формулы›
End Select End With
в зависимости от выбранного числа в ячейку таблицы вставляется то или иное неравенство для решения.
Все это может выглядеть достаточно утомительным, если не учитывать, что, во-первых, во всех этих кодах просматривается очень простая логика, во-вторых, как отмечено выше, каждый пакет Ms Office допускает автоматическую запись макроса, который легко можно приспособить под свою конкретную задачу.
3.4. ГРАФИКА
Графика реализуется в Word так же, как в Excel, за тем исключением, что выбор типа диаграммы, в общем, затруднителен. Этот выбор, в сущности, определяется несколько урезанными возможностями Excel, но обогащен возможностями SmartArt.
С помощью автофигур (меню "Рисование", "Автофигуры") изображение графиков значительно проще. Выполняется это так же, как в Excel. Программирование графики осуществляется теми же кодами,
что и в Excel, заменяя объект ActiveSheet объектом ActiveDocument, и
выбор цвета линии реализуется методом .ForeColor.RGB = RGB(a,b,c), где a, b, c – целые числа из промежутка [0, 255], указывающие на степень присутствия красного, зеленого, синего в результирующем цвете.
Для построения графиков в Word используется та же техника, что и в Excel. Подготовить таблицу данных для графического представления несложно описанными выше способами. Можно сделать это и с помощью кода (например, для таблицы 2×12):
ActiveDocument.Tables.Add Range:=Selection.Range, NumRows:=2, _ NumColumns:= 12, DefaultTableBehavior:=wdWord9TableBehavior, _ AutoFitBehavior:= wdAutoFitWindow
With Selection.Tables(1)
If .Style <> "Сетка таблицы" Then
.Style = "Сетка таблицы" End If
.ApplyStyleHeadingRows = True
.ApplyStyleLastRow = True
.ApplyStyleFirstColumn = True
.ApplyStyleLastColumn = True End With .