|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
Задание для самостоятельной работы 5.1 Работа с элементами управленияПодготовка:Создайте новую книгу Excel и сохраните ее как Prikaz.xls. Заполните ячейки с A1 по A5 значениями, аналогичными представленным на рис. 5.12.
Рис 5.12 Список сотрудников на листе Excel Откройте редактор Visual Basic и в окне Project Explorer щелкните правой кнопкой мыши по объекту "Эта книга" и в контекстном меню выберите View Code. В окне редактора кода для этой книги введите следующий код: 'При открытии рабочей книги показываем форму UF1 Private Sub Workbook_Open() UF1.Show End Sub 'Специальная процедура, которая печатает приказ в Word Public Sub DocWrite(sPovod As String, sFio As String, bFlagPremia As Boolean, bFlagGramota As Boolean, nSummaPremii As Long, sOtvIsp As String) Dim oWord As Word.Application Dim oDoc As Word.Document Set oWord = CreateObject("Word.Application") Set oDoc = oWord.Documents.Add() oWord.Visible = True oDoc.Activate With oWord.Selection .TypeText "Приказ" .Style = "Заголовок 1" .ParagraphFormat.Alignment = wdAlignParagraphCenter .TypeText vbCrLf .Style = "Обычный" .TypeText vbCrLf .TypeText " г .Санкт-Петербург" & Space(90) & Date .TypeText vbCrLf . TypeText vbCrLf . TypeText "За проявленные успехи в " & sPovod & _ " наградить " & sFio & ":" .TypeText vbCrLf If bFlagPremia Then . TypeText vbTab & "- денежной премией в сумме " & nSummaPremii & " рублей" End If If bFlagGramota Then .TypeText ";" .TypeText vbCrLf .TypeText vbTab & "- почетной грамотой." Else .TypeText "." End If .TypeText vbCrLf .TypeText vbCrLf .TypeText vbCrLf .TypeText vbCrLf . TypeText "Генеральный директор" & vbTab & vbTab & vbTab & "Иванов И.И." .ParagraphFormat.Alignment = wdAlignParagraphCenter .TypeParagraph .TypeText vbCrLf .TypeText vbCrLf .ParagraphFormat.Alignment = wdAlignParagraphLeft .TypeText Text:=("Отв. исполнитель" & sOtvIsp) .TypeParagraph End With End Sub Щелкните правой кнопкой мыши по вашему проекту Prikaz.xls и в контекстном меню выберите Insert -> UserForm. Выделите созданный вами объект формы и нажмите на кнопку <F4>. Настройте для свойства (Name) этой формы значение UF1. Поместите на форму из Toolbox единственную кнопку — элемент управления CommandButton1. Установите для этой кнопки значение свойства Caption как "Напечатать приказ" и измените размеры и местонахождение этой кнопки, чтобы форма выглядела так, как представлено на рис. 5.13.
Рис. 5.13 Форма — пока с единственной кнопкой Щелкните правой кнопкой мыши по кнопке CommandButton1 на вашей форме, в контекстном меню выберите View Code и добавьте в код событийной процедуры для события Click этой формы следующий код: Private Sub CommandButton1_Click() Dim sPovod As String Dim sFio As String Dim bFlagPremia As Boolean Dim bFlagGramota As Boolean Dim nSummaPremii As Long Dim sOtvIsp As String
'Подставить данные из формы sPovod = "освоении новых информационных технологий" sFio = "Иванова Ивана Ивановича" bFlagPremia = True bFlagGramota = True nSummaPremii = 100000 sOtvIsp = "Петрова П . П ." ' Конец подстановки данных
Call ЭтаКнига.DocWrite(sPovod, sFio, bFlagPremia, bFlagGramota, nSummaPremii, sOtvIsp) End Sub 7) Запустите вашу форму на выполнение и убедитесь, что она работает: выводит в создаваемый документ Word приказ с фиксированными значениями. Задание:Измените форму таким образом, чтобы вместо присвоения переменным в выделенном комментариями блоке заранее определенных значений пользователь смог выбирать данные при помощи формы. При этом:
Примечание. Образец для работы с ячейками столбца можно получить из ответов к предыдущим лабораторным работам.
Общий вид формы может выглядеть, например, так, как представлено на рис. 5.14:
Рис. 5.14 Готовая форма
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Получить учебные материалы по этому курсу |
||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||