Задание: Программное добавление элементов в демонстрационные материалы



Задание:

Напишите макрос PowerPoint, который бы добавлял во все слайды активной презентации в правый нижний угол надпись "© Кузнецкий колледж электронных технологий, 2017". Презентация может быть на любую тему.

Примечание:

в реальной работе, возможно, удобнее было поместить этот макрос по внешнее приложение VBA, например, документ Word или лист Excel — чтобы не копировать этот код для каждой новой презентации. В этой работе для простоты код будет выполняться из самого PowerPoint.

 

Решение:

Код макроса может быть, например, таким:

Public Sub InsertCopyRight()

Dim oSlide As Slide

Dim oShape As Shape

 

'Проходим циклом по всем слайдам в презентации

For Each oSlide In Application.ActivePresentation.Slides

 

'Для каждого слайда создаем надпись (в виде объекта Shape)

'Нужные значения для числовых параметров Left , Top , Width и Height находим

'подбором или через макрорекордер

Set oShape = oSlide.Shapes.AddTextbox(msoTextOrientationHorizontal, 500, 510, 210, 40)

 

'Доступ к тексту — через вложенные объекты TextFrame и TextRange

oShape.TextFrame.TextRange.Text = Chr(169) & " Кузнецкий колледж электронных технологий, 2017"

 

'Занимаемся украшательством

oShape.TextFrame.TextRange.Font.Size = 12

oShape.TextFrame.TextRange.Font.Bold = msoTrue

Next

 

End Sub


 

Задание: Программирование приложения базы данных

Ситуация:

Приложение, которое было создано для автоматизации формирования договоров в Word (см. задание для самостоятельной работы 10.1) решено было изменить, поскольку в нем обнаружились следующие недостатки:

программа не обеспечивала сохранение данных, введенных пользователем через форму, поэтому эти данные нельзя было использовать повторно. Намного удобнее было бы сохранять вводимые данные в базе данных, например, Access;

для работы программы необходимы два компонента: программный код (включая форму VBA), который физически находится в файле Normal.dot и шаблон DogovorTemplate.dot, который должен находиться в корневом каталоге диска C:. Такое построение приложения затрудняет его перенос между компьютерами.

Задание:

Измените созданное вами в работе 10.1 приложение, которое обеспечивает автоматическое создание договоров в формате документов Word, таким образом, чтобы это приложение обеспечивало сохранение данных о договорах в базе данных Microsoft Access. Шаблон документа Word, на основе которого должен формироваться договор, должен находиться в той же базе данных Access. Обеспечьте минимальную защиту приложения от ошибочных действий со стороны пользователя: при запуске приложения пользователь не должен видеть никаких других объектов, кроме формы для заполнения данных договора.

Для этого:

- Создайте новую базу данных Access, а в ней — необходимые таблицы для хранения данных договоров и шаблонов документов Word;

Создайте в этой базе данных форму, аналогичную представленной на рис. 12.7, для занесения информации договоров в таблицу базы данных и формирования договора в формате документа Word. Создайте для этой формы необходимый программный код;

Рис. 12.7 Форма для занесения данных договоров

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

 

Решение:

К пункту 1 — создание базы данных и необходимых таблиц:

- Запустите Microsoft Access и в меню Файл выберите Создать. В окне Создание файла выберите Новая база данных. Сохраните созданную базу данных. В нашем примере база данных будет находиться в корневом каталоге диска C: и называться Dogovors.mdb.

В открывшемся окне базы данных перейдите на вкладку Таблицы и щелкните два раза мышью по строке Создание таблицы в режиме конструктора.

В созданной таблице определите три столбца (см. рис. 12.9).

Рис. 12.9 Структура таблицы Шаблоны

Сохраните эту таблицу как Шаблоны и закройте окно конструктора.

В окне базы данных на вкладке Таблицы еще раз щелкните по строке Создание таблицы в режиме конструктора. Набор столбцов для новой таблицы должен выглядеть так:

Имя столбца Тип данных Размер
НомерДоговора Текстовый (первичный ключ) 10
Город Текстовый 30
Дата Дата/время 50
Организация Текстовый 50
Представитель Текстовый 50
Должность Текстовый 50
ЮрОснование Текстовый 100

Сохраните эту таблицу с именем Договоры и закройте окно конструктора таблицы.

На вкладке Таблицы окна базы данных щелкните два раза мышью по созданной таблице Шаблоны, чтобы открыть ее в режиме ввода данных. В первую строку этой таблицы в столбец Описание введите "Шаблон договора", а затем выделите ячейку в столбце Шаблон и в меню Вставкавыберите Объект. В открывшемся окне переставьте переключатель в положение Создать из файла, затем нажмите на кнопку Обзор и выберите шаблон C:\ DogovorTemplate. dot, который вы создали во время работы 10.1. Затем нажмите на кнопку OK, чтобы поместить шаблон внутрь базы данных.

Щелкните по ячейке для помещенного вами шаблона, чтобы убедиться, что действительно помещен в базу данных. Убедитесь, что в столбце НомерШаблона для первой строки автоматически сгенерировано значение 1, и закройте эту таблицу.

 

К пункту 2 — создание формы Access и программного кода для формирования файла договора:

- В окне базы данных перейдите на вкладку Формы и щелкните два раза мышью по строке Создание формы с помощью мастера. Откроется окно мастера создания форм.

На первом экране мастера в списке Таблицы и Запросы выберите Таблица: Договоры, затем поместите в список Выбранные поля все поля из этой таблицы и нажмите на кнопку Далее.

На следующем экране выберите внешний вид формы в один столбец и нажмите на кнопку Далее.

На следующем экране выберите наиболее вам понравившийся стиль и нажмите на кнопку Далее.

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

Произведите расстановку и дооформление созданных элементов на форме средствами конструктора по вашему вкусу.

Добавьте при помощи Toolbox на свободную часть формы элемент управления Присоединенная рамка объекта. Удалите автоматически сгенерированную вместе с ним надпись, а затем откройте свойства этого объекта. Для свойства Имя настройте значение OLEObject1, а для свойства Вывод на экран установите значение Нет.

Добавьте на форму две кнопки: Отмена и Сформировать договор. Элемент управления для первой кнопки должен называться cmdCancel, а для второй — cmdDog. В открывающемся окне мастера при создании кнопки нажимайте на кнопку Отмена.

Убедитесь, что для элементов управления текстовых полей оставлены имена по умолчанию (НомерДоговора, Город, Дата и т.п.). В итоге форма в окне конструктора должна выглядеть, например, так, как представлено на рис. 12.10

Рис. 12.10 Форма в окне конструктора

Щелкните правой кнопкой мыши по кнопке Отмена и в контекстном меню выберите Обработка событий. В открывшемся окне Построительвыберите Программы и нажмите OK. Введите следующий код для события Click этой кнопки:

Private Sub cmdCancel_Click()

Form.Undo

End Sub

При помощи меню Tools -> Referencesв окне редактора кода добавьте ссылку на объектную библиотеку Microsoft Word 11.0 Object Library.

Так же откройте код для события Click для кнопки Сформировать договор и введите следующий код:

Private Sub cmdDog_Click()

Dim dDate As Date

Dim НомерДоговора, Город, Организация, Представитель, Должность, ЮрОснование As String

 

'Присваиваем значения переменным при помощи элементов управления формы

If Form.Controls("Дата").Value <> "" Then _

dDate = Form.Controls("Дата").Value

If Form.Controls("НомерДоговора").Value <> "" Then _

НомерДоговора = Form.Controls("НомерДоговора").Value

If Form.Controls("Город").Value <> "" Then _

Город = Form.Controls("Город").Value

If Form.Controls("Организация").Value <> "" Then _

Организация = Form.Controls("Организация").Value

If Form.Controls("Представитель").Value <> "" Then _

Представитель = Form.Controls("Представитель").Value

If Form.Controls("Должность").Value <> "" Then _

Должность = Form.Controls("Должность").Value

If Form.Controls("ЮрОснование").Value <> "" Then _

ЮрОснование = Form . Controls ("ЮрОснование"). Value

 

'Получаем шаблон — теперь из базы данных

Dim oBOF As BoundObjectFrame

Set oBOF = Form.Controls("OLEObject1")

oBOF = DLookup("[Шаблон]", "Шаблоны", "[НомерШаблона] = 1")

oBOF.Verb = acOLEVerbOpen

 

oBOF.Action = acOLEActivate

 

'Получаем ссылки на запущенный нами Word и открытый в нем документ

Dim oWord As Word.Application

Set oWord = GetObject(, "Word.Application")

Dim oDoc As Word.Document

Set oDoc = oWord.ActiveDocument

oWord.Visible = True

oWord.ActiveWindow.WindowState = wdWindowStateMaximize

oDoc . Activate

 

'Вставляем данные в закладки

oDoc.Bookmarks("bNumber").Range.Text = НомерДоговора

oDoc.Bookmarks("bCity").Range.Text = Город

oDoc.Bookmarks("bDate").Range.Text = dDate

oDoc.Bookmarks("bOrg").Range.Text = Организация

oDoc.Bookmarks("bTitle").Range.Text = Должность

oDoc.Bookmarks("bPerson").Range.Text = Представитель

oDoc.Bookmarks("bLaw").Range.Text = ЮрОснование

 

End Sub

Запустите созданный вами код на выполнение и убедитесь в его работоспособности.

 

К пункту 3 — обеспечение минимальной защиты от действий пользователя:

- В окне базы данных Access в меню Сервис выберите Параметры запуска.

В открывшемся окне Параметры запуска снимите все флажки, а в списке Вывод формы/страницы выберите Форма для занесения договоров (см. рис. 12.11).

Рис. 12.11Настройка параметров приложения в окне Параметры запуска

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

Примечание.

База данных откроется в обычном режиме, если при ее нажатии держать нажатой кнопку < Shift>.

 


 


Дата добавления: 2018-08-06; просмотров: 181; Мы поможем в написании вашей работы!

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






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