logo
Организация взаимодействия с приложениями Microsoft Office в Delphi

1.3 Обработка ошибок

Записанный макрос не в каждой ситуации может работать правильно. Это может быть вызвано как особенностями работы Microsoft Excel, так и ошибками при редактировании макроса. Если выполнение макроса невозможно, будет выдано сообщение об ошибке, в котором указан номер ошибки и приведен краткий комментарий. Комментарий может быть как на русском языке, так и на английском. Если нажать кнопку End, выполнение макроса прекратится. Если нажать кнопку Help, запустится справочная система Microsoft Excel и появится окно со справкой по этой ошибке. Если нажать кнопку Debug, откроется окно Visual Basic, в котором будет отмечена строка макроса, вызвавшая ошибку выполнения

В зависимости от характера ошибки ее необходимо исправить или обойти.

Если ошибка вызвана неправильным редактированием макроса, в текст макроса следует внести исправления, а затем закрыть окно Visual Basic. В запросе на прекращение процесса отладки , следует нажать кнопку ОК, а затем снова запустить макрос. Если же ошибка работы макроса связана с особенностями ситуации, то можно внести в макрос команды, позволяющие обойти эту ошибку. Наиболее универсальная команда обхода ошибок в макросах: On Error GoTo a, где а -- метка, к которой следует перейти при обнаружении ошибки. В качестве метки можно использовать буквы, цифры или их сочетания. Пробелы использовать нельзя. Метка в тексте макроса вводится с двоеточием отдельной строкой: Команду On Error GoTo a можно ввести первой строкой макроса, для того, чтобы она перехватывала все ошибки. Метку можно ввести перед той командой макроса, которая должна выполняться после ошибочной команды. Если при обнаружении ошибки следует прекратить выполнения макроса, то метку следует ввести перед строкой завершения работы макроса.

После необходимого редактирования и создания команды обхода ошибки текст макроса примет следующий вид:

Sub Валюты()

Валюты Макрос

Макрос записан 02.01.2007 (Spiridonov)

On Error GoTo a

Sheets.Add

ActiveSheet.Name = "Новый"

Sheets("Курсы валют").Select

Range("A1:G19").Select

Selection.Copy

Sheets("Новый").Select

Selection.PasteSpecial Paste:=xlPasteValues

Selection.Replace What:=".", Replacement:="."

Range("H2").Select

ActiveCell.FormulaR1C1 = "=RC[-4]/RC[-6]"

Selection.AutoFill Destination:=Range("H2:H19")

Range("H2:H19").Select

Selection.Copy

Range("D2").Select

Selection.PasteSpecial Paste:=xlPasteValues

Range("A:B,E:H").Select

Selection.Delete Shift:=xlToLeft

Columns("B:B").Select

Selection.Style = "Currency"

Range("A:B").EntireColumn.AutoFit

Range("A1").Select

ActiveSheet.Name = Date

Границы

a:

End Sub

Sub Границы()

Границы Макрос

Макрос записан 02.01.2007 (Spiridonov)

Range("A1:B19").Select

Selection.Borders(xlEdgeLeft).LineStyle = xlContinuous

Selection.Borders(xlEdgeTop).LineStyle = xlContinuous

Selection.Borders(xlEdgeBottom).LineStyle = xlContinuous

Selection.Borders(xlEdgeRight).LineStyle = xlContinuous

Selection.Borders(xlInsideVertical).LineStyle = xlContinuous

Selection.Borders(xlInsideHorizontal).LineStyle = xlContinuous

Range("A1").Select

End Sub

Удаление макросов

Для удаления макроса выполните команду Сервис/Макрос/Макросы, в окне Макросы выберите макрос и нажмите кнопку Удалить. В окне запроса следует нажать кнопку Да. В окне Microsoft Excel отменить удаление макроса невозможно. Но если сразу же после удаления макроса открыть окно Visual Basic, то, нажав кнопку Undo (Отменить), удаление макроса можно отменить.

Подписывание макросов

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

Для подписи макроса необходимо получить сертификат.

Для подписи коммерческих макросов следует получить заверенный сертификат в официальном коммерческом центре сертификации.

Для личного использования сертификат цифровой подписи можно создать самостоятельно с помощью программы Цифровой сертификат для проектов VBA. макрос офисный приложение delphi

Создание цифрового сертификата

Для запуска программы создания цифрового сертификата откройте Главное меню Windows и выберите команду Все программы Microsoft OfficeСредства Microsoft Office. В окне Создание цифрового сертификата введите имя сертификата и нажмите кнопку ОК. Теперь цифровой сертификат создан, и его можно использовать для подписывания макросов.

Добавление цифровой подписи к макросу

Для добавления цифровой подписи в режиме просмотра макроса в окне редактора Visual Basic выполните команду Tools/Digital Signature. В окне Цифровая подпись нажмите кнопку Выбрать. В окне Выбор сертификата выберите сертификат, используемый для подписи, и нажмите кнопку ОК.

После того, как имя сертификата будет указано в окне Цифровая подпись, нажмите кнопку ОК. Цифровая подпись к макросу добавлена.