Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОСНОВЫ ОФИСНОГО ПРОГРАММИРОВАНИЯ И ЯЗЫК VBA - 2....doc
Скачиваний:
79
Добавлен:
17.12.2018
Размер:
1.62 Mб
Скачать

Копирование файлов: оператор FileCopy

Синтаксис:

FileCopy файл-источник, файл-результат

Параметр файл-источник - строковое выражение, задающее имя копируемого файла, Файл-результат - строковое выражение, которое определяет имя результирующего файла. Оба имени могут включать имена дисков, каталогов или папок. Открытый в данный момент файл копировать нельзя.

Пример:

'Копирование файла

FileCopy "Temp1\Example1.xls", "Temp2\Example1.xls"

Удаление файлов: оператор Kill

Синтаксис:

Kill файл

Параметр файл - строковое вырыжение, задающее имя удаляемого файла. Он может включать имя диска и путь по каталогам или папкам. Для удаления нескольких файлов можно использовать в образце имени файла символ '*' для обозначения произвольной последовательности букв и '?' - для обозначения одного символа. Нельзя удалять открытый в данный момент файл.

Пример.

Допустим, в текущем каталоге находятся файлы PROG.DOC, PROG.CPP и PROG.OBJ. Тогда оператор:

Kill "PROG.*"

удалит эти файлы с диска.

Прочие операторы

И еще несколько полезных операторов VBA, не попавших ни в одну из предыдущих групп.

Операции с одним объектом. Оператор With

Если в одном блоке программы предстоит выполнить несколько операций с одним объектом, то, чтобы не повторять многократно имя этого объекта, можно ввести оператор With.

Синтаксис:

With объект

[операторы]

End

With

Здесь объект - имя объекта или переменной, определенного пользователем типа, а операторы - последовательность операторов, которые могут действовать с указанным объектом. В этих операторах имена свойств и методов указанного объекта можно начинать с точки, опуская имя самого объекта.

Допустим, пользовательский тип Person и переменная MyFriend определены так.

Type Person

Name As String

Age As Integer

Height As Single

End Type

Dim MyFriend As Person

Тогда присвоение значений свойствам переменной MyFriend можно произвести с помощью оператора With:

With MyFriend

Name = "Сергей"

Age= 35

.Height = 178.5

End With

Подчеркнем, что в каждом блоке имя лишь одного объекта задается по умолчанию. При вложенности операторов With:

With объект1

операторы1

With объект2

операторы2

End With

End With

в блоке операторы2 имя объекта1 нужно указывать полностью. Если же объект2 - элемент (подобъект) объекта1, то, использовав оператор With объект2, можно получить во внутреннем блоке сокращенный доступ к свойствам объекта "объект1. объект2".

Например, если к типу Person добавить данные о встрече:

Type Meeting

Place As String

Date As Date

End Type

Type Person

Name As String

Age As Integer

Height As Single

LastMeeting As Meeting

End Type

Dim NewAcquaintance As Person

то задавать данные о новом знакомом NewAcquaintance можно, используя вложенные операторы With.

With NewAcquaintance

.Name = "Елена"

.Age= 40

.Height = 168

With.LastMeeting

.Place= "библиотека"

'этот оператор эквивалентен:

'NewAcquaintance. LastMeeting.Place="библиотека"

.Date= #08/03/99#

End With

End With

Звуковой сигнал: оператор Beep

Подает звуковой сигнал через динамик компьютера.

Синтаксис:

Beep

Частота и сила звука зависят от оборудования и могут меняться от компьютера к компьютеру. Обычно звуковой сигнал используется как реакция на какие-либо ошибки или исключительные ситуации, возникающие при выполнении программы.

Установка системной даты: оператор Date

Синтаксис:

Date = дата

Пример:

Date = #April 29, 1999# ' Изменение системной даты.

Установка системного времени: оператор Time

Синтаксис оператора Time:

Time = время

Пример:

Time = #8:15:47 PM# ' Установка системного времени

Моделирование ввода с клавиатуры: оператор SendKeys

Посылает один или несколько кодов символов в текущее активное окно, как если бы соответствующие клавиши были нажаты.

Синтаксис:

SendKeys строка[, режим-ожидания]

Параметр строка - строковое выражение, задающее последовательность посылаемых символов. Необязательный параметр режим-ожидания - выражение с булевым значением. Если оно False (по умолчанию), управление возвращается в процедуру сразу же после посылки кодов; True - посланная последовательность кодов должна быть обработана, прежде чем управление возвратится в процедуру.

Большинство символов, набираемых на клавиатуре, входят в строку непосредственно. Например, чтобы послать последовательность из трех символов Y, E и S, возьмите в качестве строки " YES". Символы: +, ^, %, ~, скобки и некоторые другие следует помещать в фигурные скобки. Например, чтобы послать +, в параметр строка нужно поместить {+}. Для посылки кодов клавиш, не отображаемых на экране, имеются специальные коды. Некоторые представлены в таблице, остальные можно найти с помощью подсказки:

Таблица 7.2. Коды клавиш, не отображаемых на экране

Клавиша

Код

BACKSPACE

{BS}

BREAK

{BREAK}

CAPS LOCK

{CAPSLOCK}

DEL

{DEL}

DOWN ARROW

{DOWN}

END

{END}

ENTER

{ENTER} или ~

ESC

{ESC}

HOME

{HOME}

INS

{INS}

LEFT ARROW

{LEFT}

PAGE DOWN

{PGDN}

PAGE UP

{PGUP}

RIGHT ARROW

{RIGHT}

TAB

{TAB}

UP ARROW

{UP}

Fn

{Fn} (n=1,…, 12)

Чтобы послать комбинацию клавиш, для Shift, Ctrl и Alt используются следующие коды (В примере используется документ DocTwo7:

Shift - +

Ctrl ^

Alt %

Пример:

В качестве примера рассмотрим открытие документа, требующего пароль при его открытии:

Public Sub OpenDocWithPassword()

'Открытие документа с паролем

SendKeys "+^" 'Переключение раскладки клавиатуры

SendKeys "don" & "{'}" & "t know", False 'пароль "don't know"

Documents.Open "e:\O2000\CD2000\Ch7\DocTwo7.doc"

Documents("DocTwo7.doc").Activate

End Sub

Обратите внимание на два момента:

  • Прежде, чем послать сам пароль, происходит переключение клавиатуры на другую раскладку, для чего используется комбинация символов "Shift + Ctrl".

  • Символы клавиатуры посылаются в буфер ввода еще до того, как они потребуются. Если бы оператор Open предшествовал оператору SendKeys, то окно ввода пароля появилось бы до выполнения этого оператора. В данном же случае при открытии документа пароль автоматически появится в окне ввода, так что останется только щелкнуть по кнопке OK.

Программный код большинства примеров данной лекции можно найти в проектах, доступных для просмотра: DocOne8, DocTwo8.