- •Создание и проверка криптографической защиты текстовой информации макросами языка vba в среде Word ms Office.
- •Объекты, свойства и методы vba.
- •Типы данных.
- •Встроенные типы данных.
- •Переменные и их объявление.
- •Объявление и присваивание объектных переменных.
- •Использование встроенных функций Visual Basic.
- •Математические функции
- •Строковые функции:
- •2.Логически прерываемые
- •Встроенные диалоговые окна.
- •Диалоговые окна приложения.
- •Порядок выполнения программы Шифрование/Дешифрование текстовых фрагментов документа Word по парольной фразе (симметричный ключ).
- •1.2 Создать код для отображения диалогового окна:
Встроенные диалоговые окна.
Передача данных программе и получение данных от программы представляет непростую задачу. В зависимости от конкретного применения программы создается код, реализующий пользовательский интерфейс, и эта часть программы является важной. В профессионально разработанных программах объем кода, реализующего пользовательский интерфейс, занимает около 90 % общего объема кода, и только 10 % используется для обработки данных.
Visual Basic представляет возможность применять диалоговые окна для получения данных от пользователя и для передачи ему информации.
Выделяют следующие виды окон:
Встроенные диалоговые окна сообщений;
Встроенные диалоговые окна ввода данных;
Функция MsgBox() обеспечивает создание диалогового окна, подобного простому окну сообщения. Если окно сообщения всего лишь отображает сообщение для пользователя. то диалоговое окно требует от пользователя некоторых действий по вводу данных. Оно отображает строку текста, а затем ожидает, пока пользователь нажмет командную кнопку (их возможное число не ограничено).
Для создания простого окна сообщения применяется зарезервированное слово MsgBox, за ним следует текст, который будет отображен в виде сообщения. При создании простого окна сообщения используется функция в форме оператора. так как любое возвращенное значение будет проигнорировано и нет необходимости в передаче аргументов.
Если требуется отобразить числа. используются функции Str() или Format() позволяющие преобразовать число в символьное представление.Добавление командных кнопок в окно сообщения для создания диалогового окна в полном варианте процедура MsgBox имеет три параметра. Командные кнопки позволят пользователю выбрать направление действий или вариант ответа на простой вопрос.Добавить командные кнопки можно используя необязательные аргументы функции MsgBox().
Коды этих команд передаются в качестве второго аргумента функции (первым аргументом является текст, отображаемый в диалоговом окне) или в качестве поименованного аргумента buttons. Список кодов и имен констант, допустимых в Visual Basic, приведен в табл. 6: Таблица 6
Код |
Константа |
Описание |
Коды командных кнопок |
||
0 |
vbOKOnly |
OK |
1 |
vbOKCancel |
|
2 |
vbAbortRetryIgnore |
Abort, Retry и Ignore |
3 |
vbYesNoCancel |
Yes, No и Cancel |
4 |
vbYesNo |
Yes и No |
5 |
vbRetryCancel |
Retry и Cancel |
Продолжение
таблицы 3 |
||
0 |
vbDefaultButton1 |
Активная первая кнопка |
256 |
vbDefaultButton2 |
Активная вторая кнопка |
512 |
vbDefaultButton3 |
Активная третья кнопка |
Коды пиктограмм |
||
16 |
vbCritical |
Важное сообщение |
32 |
vbQuestion |
Предупредительный запрос |
48 |
vbExclamation |
Предупредительное сообщение |
64 |
vbInformation |
Информационное сообщение |
Коды модальности окна |
||
0 |
vbApplicationModal |
Программное модальное |
4096 |
vbSystemModal |
Системное модальное |
Если Вы хотите отобразить более одной кнопки, следует определить, которая из них будет активной по умолчанию. Командная кнопка, активная по умолчанию, автоматически считается нажатой, если пользователь после отображения диалогового окна нажал клавишу Enter.
Кроме того, Вы можете решить будет ли диалоговое окно модальным. Если диалоговое окно не модальное, то пользователь может переключиться на другое окно, продолжив таким образом работу без закрытия диалогового окна. Если же диалоговое окно задано как модальное, то пользователь должен закрыть его, прежде чем продолжать работу с данной программой. Существуют два типа модальных диалоговых окон – программные модальные и системные модальные. Пользователь должен закрыть программное модальное окно, прежде чем продолжить работу с программой, отобразившей это окно; хотя в этом случае разрешается переключаться на другую программу, не закрыв данное диалоговое окно. Системное модально диалоговое окно требует, чтобы пользователь закрыл его прежде, чем делать что-нибудь еще.
Чтобы код был более очевидным, следует использовать поименованные константы, а не числа.
Можно использовать, например, любой из операторов MsgBox():
MsgBox prompt:= “Доброе утро, страна?”, _
buttons:=theCode
MsgBox “Доброе утро, страна?”, theCode
Каждый из этих операторов, после записи на панели Immediat окна Debug, обеспечит создание диалогового окна.
Чтобы определить, какую командную кнопку нажал пользователь для его закрытия, нужно использовать функциональную форму MsgBox() и проверить возвращенное функцией значение. Возможные значения, возвращаемые функцией, и соответствующие им константы Visual Basic приведены в табл. 7.
Таблица 7.
Код |
Константа |
Командная кнопка |
1 |
vbOk |
OK |
2 |
vbCancel |
Cancel |
3 |
vbAbort |
Abort |
4 |
vbRetry |
Retry |
5 |
vbIgnore |
Ignore |
6 |
vbYes |
Yes |
7 |
vbNo |
No |
Чтобы изменить заголовок, следует добавить в вызов функции MsgBox() еще один строковый аргумент, содержащий новый заголовок. При использовании формы списка аргументов, заголовок будет третьим аргументом; в противном случае используйте title :=”Текст заголовка”.
Sub MakeDialog2()
Dim theCode As Integer
Dim theReply As Integer
theCode = vbYesNo + vbDefaultButton2 + vbExclamation + vbApplicationModal
theReply = MsgBox(prompt:="Вы действительно хотите это сделать?", Buttons:=theCode, _
Title:="Относительно того, что Вы собрались сделать")
Select Case theReply
Case vbYes
theReply = MsgBox(prompt:="Вы нажали кнопочку Да")
Case vbNo
theReply = MsgBox(prompt:="Вы нажали кнопочку Нет")
End Select
End Sub
Функция InputBox создает диалоговое окно другого типа. Базовое окно ввода содержит окно редактирования, командную кнопку ОК и Cancel. Любой текст, записываемый в текстовое окно диалогового окна, будет возвращен функцией после того, как пользователь нажмет кнопку ОК, иначе будет возвращена пустая строка.
Первый аргумент функции InputBox() – строка текста, применяемая в качестве запроса на ввод в диалоговом окне;
второй – заголовок;
третий – default – содержит любой текст по умолчанию, который Вы можете отобразить в окне редактирования при открытии диалогового окна.
Функция не использует аргумент buttons. Все аргументы должны быть строками текста, и значение, возвращаемое функцией, также является строкой текста. Для того, чтобы использовать возвращенное функцией значение в качестве числа, нужно преобразовать его из символьного представления в двоичное с помощью функции Val().
Существует еще два типа встроенных диалоговых окон: GetOpenFilename и GetSaveAsFilename. Эти окна не открывают файл и не сохраняют его, а только позволяют указать его имя и путь. Команды, создающие такие диалоговые окна, являются не операторами Visual Basic, а методами Application.
Операторы, создающие эти два типа диалоговых окон, имеют следующий синтаксис:
theFilename=Application.GetOpenFilename (файловый_фильтр,индекс_фильтра, заголовок)
theFilename=Application.GetSaveAsFilename (начальное_имя_файла, _файловый фильтр, индекс_фильтра, заголовок)
Оба метода применяются к объекту Application и возвращают имя файла и путь, выбранные пользователем.
Аргумент файловый_фильтр определяет, какие файловые фильтры перечисляются в выпадающем списке File Type диалогового окна. Всписке файлов диалогового окна появляются только те файлы, которые совпали с выбранным файловым фильтром.
Файловый фильтр состоит из двух частей – текста и фильтра. Текст отображается в выпадающем списке File Type; а фильтр используется для выбора файлов из списка.
Аргумент индекс_фильтра является целым числом, задающим в выпадающем списке File Type файловый фильтр поумолчанию. Аргумент заголовок аналогичен используемому для функции InputBox(). Аргумент начальное_имя_файла определяет начальное , заданное по умолчанию, имя файла, которое помещают в окно редактирования текста.
