Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VBA-Laboratorny_praktikum.doc
Скачиваний:
5
Добавлен:
01.04.2025
Размер:
4.56 Mб
Скачать

3.2.Программа УдалениеКниги

Напишем программу УдалениеКниги (в Модуле1), которая:

  • удаляет файл C:\St\Случайные числа.xls;

  • выводит сообщение: Файл Случайные числа.xls удален!

Если писать эту программу что называется в «в лоб», то получим следующий код:

Sub УдалениеКниги()

Kill "C:\St\Случайные числа.xls"

MsgBox "Файл Случайные числа.xls удален!"

End Sub

Это программа работает корректно только в том случае, когда книга Случайные числа.xls закрыта и хранится в папке C:\St. В реальности книга Случайные числа.xls может находиться в следующих состояниях: открыта, закрыта, не существует.

Задание:

  1. запустите макрос УдалениеКниги при закрытой книге Случайные числа.xls;

  2. создайте эту книгу заново и запустите макрос УдалениеКниги, когда книга Случайные числа.xls открыта. Обратите внимание на возникшую ошибку (УДАЛЕНИЕ ОТКРЫТОЙ КНИГИ ЗАПРЕЩЕНО!)

Прежде чем модернизировать программу УдалениеКниги, в Модуле1 напишем код, который проверяет существование файла C:\St\Случайные числа.xls:

Sub ПроверкаСуществованияФайла()

Dim Файл As String

Файл = Dir("C:\St\Случайные числа.xls")

If Файл <> "" Then _

MsgBox "Файл Случайные числа.xls существует!" _

Else MsgBox "Файл Случайные числа.xls не найден!"

End Sub

Обратите внимание на значения, которые возвращает функция Dir в зависимости от того, существует файл или нет.

Вернемся к программе УдалениеКниги. Для того чтобы эта программа «отслеживала» все возможные ситуации, запишем её в следующем виде:

Sub УдалениеКниги()

Dim Файл As String

Файл = Dir("C:\St\Случайные числа.xls")

If Файл = "" Then

MsgBox "Файл не найден!"

Exit Sub

End If

For i = 1 To Workbooks.Count

If Workbooks(i).Name = "Случайные числа.xls" Then

Workbooks("Случайные числа.xls").Close False

Exit For

End If

Next i

Kill "C:\St\Случайные числа.xls"

MsgBox " Файл Случайные числа.xls удален!"

End Sub

Комментарии к программе:

1-я строка – строка начала процедуры УдалениеКниги.

Во 2-й строке объявляется переменная Файл как строковая переменная.

3-я строка: с помощью встроенной функции Dir проверяем существование книги Случайные числа.xls.

4 – 7 строки: если книга не существует, то выводится сообщение о том, что файл не найден и выполнение программы прекращается (Exit Sub).

Далее следует код, который выполняется при наличии книги Случайные числа.xls. Тут возможны следующие ситуации:

  1. Искомая книга открыта.

  2. Искомая книга закрыта.

Проверка события: открыта ли книга Случайные числа.xls, осуществляется в цикле, в процессе перебора всех открытых книг (8-я строка). Само условие прописано в 9-ой строке. Данный фрагмент кода необходим для того, чтобы избежать ситуации «Удаление открытой книги».

Если книга с именем Случайные числа.xls найдена, то программа закрывает её без сохранения (10-я строка), выполнение цикла прерывается (11-я строка) и управление передается 14-й строке.

В эту же 14-ю строку мы попадаем после завершения цикла, если среди открытых книг искомая книга не найдена (т.е. она закрыта). Книга удаляется.

В 15-й строке выводится сообщение о выполнении операции, и выполнение программы прекращается (16-я строка).

Задания:

  1. Добавьте кнопку Удалить книгу на панель инструментов Случайные числа. Свяжите её с макросом УдалениеКниги.

  2. Протестируйте работу программы в различных режимах.

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