Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lab_2 - копия.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
169.47 Кб
Скачать

Работа с ячейками Запись информации в ячейки таблицы

Для записи информации в ячейку, находящуюся на пересечении строки c номером Row и столбца с номером Column можно использовать метод Cell объекта Table

TableOblect.Cell(Row, Column)

Метод возвращает ячейку. Например:

Dim vCell As Cell

Set vCell = ActiveDocument.Tables(1).Cell(1, 2)

vCell.Range.Text = "text" 'заменяем содержимое ячейки на text

vCell.Range.InsertAfter "456" ' вставляем в конец текста ячейки 456

vCell.Range.InsertBefore "123" ' вставляем перед текстом ячейки 123

В итоге во второй ячейке первой строки будет записано 123text456.

Объект Row имеет свойство Cells, являющееся коллекцией всех ячеек строки. Как и элементу любой коллекции к ячейке можно обратиться по ее индексу.

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

ActiveDocument.Tables(1).Rows.Add

With ActiveDocument.Tables(1).Rows.Last

.Range.Font.Size = 12

.Range.Bold = False

.Cells(1).Range.Text = ActiveDocument.Tables(1).Rows.Count - 1

.Cells(2).Range.Text = UserForm1.TextBoxFam.Text

.Cells(3).Range.Text = UserForm1.TextBoxData.Text

.Cells(4).Range.Text = UserForm1.TextBoxEvent.Text

End With

Задание №3

3.1 Изменить форму задания №1, добавив две кнопки "Записать в таблицу" и "Создать письма". Убрать кнопку "Создать".

3.2 Обработчик нажатия кнопки "Записать в таблицу" выполняет следующие действия:

3.2.1. Проверяет наличие открытого документа InfoTable.doc. Для проверки написать процедуру checkInfoTable, результатом работы которой является наличие открытого документа InfoTable.doc. Процедура охватывает пункты 3.2.1-3.2.4

'проверка наличия открытого документа

For i = 1 To Documents.Count

If Documents(i).Name = "InfoTable.doc" Then

Documents("InfoTable.doc").Activate

Exit Sub

End If

Next

3.2.2. Если такого документа не окажется, предлагается выбор: создать новый или открыть существующий документ?

3.2.3. Для создания нового документа написать процедуру createInfoTable, в которой:

  • создается новый документ и сохраняется в директории присоединенного шаблона под именем InfoTable.doc;

Для удобства обращения к объектам использовать возвращаемое методом Add значение

Set infoDoc = Documents.Add

infoDoc.SaveAs startDoc.AttachedTemplate.Path & "\InfoTable.doc"

  • в InfoTable.doc создается таблица из 4-х колонок и 1 строки;

Set infoTable = infoDoc.Tables.Add(Selection.Range, 1, 4, _

wdWord9TableBehavior, wdAutoFitContent)

  • определяются границы, выравнивание по центру и шрифт

  • заполняются заголовки

Номер

Фамилия

Дата

Мероприятие

3.2.4. Если принято решение открыть существующий файл, то вызывается стандартное окно диалога для открытия файла

Dialogs(wdDialogFileOpen).Show

Посмотреть справку по объектам Dialogs и Dialog Object Members. Разобраться в сути методов Display, Execute и Show.

Проверить, что открывается нужный файл.

Dim dlg As Dialog

Set dlg = Dialogs(wdDialogFileOpen)

M: dlg.Display

If dlg.Name = "InfoTable.doc" Then

dlg.Execute

Else

MsgBox "Надо открыть InfoTable.doc!"

Exit Sub ' или GoTo M

End If

3.2.5. Когда известно, что документ InfoTable.doc открыт, вызывается процедура writeToTable, в которой в конец таблицы добавляется новая строка и в нее записывается порядковый номер, фамилия, дата и мероприятие.

3.3 Для удобства тестирования поместить на панели быстрого доступа кнопку вызова макроса AutoOpen, который показывает форму. В этом случае он будет работать как обычный макрос.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]