Как отменить действие макроса excel
Argument ‘Topic id’ is null or empty
Сейчас на форуме
© Николай Павлов, Planetaexcel, 2006-2023
info@planetaexcel.ru
Использование любых материалов сайта допускается строго с указанием прямой ссылки на источник, упоминанием названия сайта, имени автора и неизменности исходного текста и иллюстраций.
| ООО «Планета Эксел» ИНН 7735603520 ОГРН 1147746834949 |
ИП Павлов Николай Владимирович ИНН 633015842586 ОГРНИП 310633031600071 |
Метод Application.Undo (Visio)
Отменяет последнюю единицу отмены, если единица отмены может быть отменена.
Синтаксис
expression. Отменить
выражение: переменная, представляющая объект Application.
Возвращаемое значение
Примечания
Используйте метод Undo для отмены действий по одной единице отмены за раз.
Количество вызовов метода Undo зависит от того, выполняется ли код в области открытого блока отмены. Код выполняется в области открытого блока отмены, если это:
- Макрос или надстройка, вызываемые пользовательским интерфейсом Microsoft Visio.
- В обработчике событий, реагирующего на событие Visio, отличное от события VisioIsIdle .
- В области отмены, созданной пользователем.
Если код не выполняется в области открытого блока отмены, он может вызвать метод Undo для каждого блока отмены в стеке отмены Visio. Можно задать максимальное количество единиц в стеке отмены (по умолчанию — 20) на вкладке Дополнительно диалогового окна Параметры Visio (перейдите на вкладку Файл и выберите пункт Параметры). Если количество вызовов метода Undo превышает количество единиц отмены в стеке, никаких действий не выполняется и метод Undo не вызывает исключения.
Если код выполняется в области открытого блока отмены, он может вызывать метод Undo один раз для каждой операции в блоке open undo. При наличии дополнительных вызовов метода Undo он создает исключение и не выполняет никаких действий. Например, если код в макросе выполняет две операции, он может вызвать метод Undo дважды. Если макрос вызывает метод Undo в третий раз, метод Undo создает исключение.
Код, вызывающий метод Undo из области единицы отмены, не может вызвать метод Redo для отмены действия. Метод Redo можно вызывать только при отсутствии открытых единиц отмены.
Метод Undo также вызывает исключение, если экземпляр Visio в настоящее время выполняет отмену или повтор. Чтобы определить, отменяется или повторно выполняется экземпляр Visio, используйте свойство IsUndoingOrRedoing .
Метод Undo можно вызвать из обработчика событий VisioIsIdle , так как событие VisioIsIdle может вызываться только в том случае, если свойство IsUndoingOrRedoing имеет значение False. Вы также можете вызвать метод Undo из кода, не вызываемого экземпляром Visio, например из кода, вызываемого из редактора Visual Basic или из внешней программы.
Большинство действий можно отменить, но не все. Используйте метод Redo , чтобы обратить вспять эффект метода Undo .
Пример
Этот макрос Microsoft Visual Basic для приложений (VBA) показывает, как отменить и повторить действия.
Public Sub Undo_Example() Dim vsoShape As Visio.Shape 'Draw a rectangle, use Undo to delete it, and 'then use Redo to redraw it. Set vsoShape = ActivePage.DrawRectangle(1, 5, 5, 1) 'Delete the shape. Visio.Application.Undo 'Bring it back. Visio.Application.Redo End Sub
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
Изменение параметров безопасности макросов в Excel
В Excel вы можете изменять параметры безопасности макросов, определяя, какие макросы и при каких обстоятельствах должны выполняться при открытии книги. Например, можно разрешить выполнение макроса в зависимости от наличия цифровой подписи надежного разработчика.
Дополнительные сведения о параметрах безопасности макросов в документах Microsoft Office см. в статье Включение и отключение макросов в файлах Office.
Параметры безопасности макросов и их действие
Ниже приведен список различных параметров безопасности макросов. Если установлена антивирусная программа, работающая с Microsoft 365, то помимо всех параметров книга, содержащая макросы, перед открытием проверяется также на наличие известных вирусов.
- Отключить все макросы без уведомления. Выберите этот параметр, если не доверяете макросам. Все макросы в документе и предупреждения о безопасности макросов отключаются. Если у вас есть документы, содержащие неподписанные макросы, которым вы доверяете, эти документы можно поместить в надежное расположение. Документы из надежных расположений разрешается выполнять без проверки системой центра управления безопасностью.
- Отключить все макросы с уведомлением. Этот параметр задан по умолчанию. Выберите этот вариант, если хотите отключить макросы, но при этом получать предупреждения о безопасности, если макросы есть. Так вы можете в каждом конкретном случае решать, стоит ли включать эти макросы.
- Отключить все макросы кроме макросов с цифровой подписью. Этот параметр подобен параметру Отключить все макросы с уведомлением, не считая того, что макрос с цифровой подписью надежного издателя может выполняться, если вы уже доверяете этому издателю. Если издатель не считается надежным, вы получаете уведомление. Так вы можете выбрать, следует ли включить эти подписанные макросы и выразить доверие издателю. Все макросы без подписи отключаются без уведомления.
- Включить все макросы (не рекомендуется, возможен запуск опасной программы). Выберите этот параметр, чтобы разрешить выполнение всех макросов. В таком случае ваш компьютер становится уязвимым для потенциально опасного кода, поэтому этот вариант не рекомендуется.
- Доверять доступ к объектной модели проектов VBA Этот параметр используется для разработчиков и используется для преднамеренной блокировки или блокировки программного доступа к объектной модели VBA из любого клиента автоматизации. Другими словами, он обеспечивает параметр безопасности для кода, который создается для автоматизации программы Office и программного управления средой и объектной моделью Microsoft Visual Basic для приложений (VBA). Этот параметр настраивается для каждого пользователя и каждого приложения и по умолчанию не имеет доступа. Этот параметр безопасности затрудняет несанкционированный доступ к созданию кода «саморекопирования», который может навредить системам конечных пользователей. Чтобы любой клиент автоматизации мог получить доступ к объектной модели VBA программным путем, пользователь, работающий с кодом, должен явно предоставить доступ. Чтобы включить доступ, выберите этот квадрат.
Использование цифровых подписей
В Office используется технология Microsoft Authenticode, позволяющая создателям макросов добавлять цифровую подпись в файл или проект макроса. Сертификат, используемый для создания подписи, подтверждает, что макрос или документ создан автором подписи, а подпись подтверждает, что макрос или документ не был изменен.
Установив свой цифровой сертификат, вы можете подписывать файлы и макросы.
Получение цифрового сертификата для подписания
Цифровой сертификат можно получить в коммерческом центре сертификации (ЦС) или у администратора безопасности локальной сети либо ИТ-специалиста.
Дополнительные сведения о центрах сертификации, обслуживающих продукты Майкрософт, см. в списке участников программы корневых сертификатов Майкрософт.
Создание своего самозаверяющего цифрового сертификата
С помощью программы Selfcert.exe вы можете создать свой самозаверяющий сертификат.
Примечание: Поскольку созданный вами цифровой сертификат не выдается официальным доверенным центром сертификации, макросы, подписанные с помощью такого сертификата, называют макросами с собственной подписью. В Microsoft Office самозаверяющие сертификаты считаются надежными только на том компьютере, на котором они добавлены в хранилище личных сертификатов.
Дополнительные сведения о добавлении цифровой подписи к макросам см. в статье Подписание макроса.
Изменение параметров безопасности макросов
Вы можете изменять параметры безопасности макросов в центре управления безопасностью, если только системный администратор в вашей организации не запретил это, изменив настройки по умолчанию.
- На вкладке Разработчик в группе Код нажмите кнопку Безопасность макросов. Чтобы включить вкладку «Разработчик», см. раздел Отображение вкладки «Разработчик».
- В категории Параметры макросов в разделе Параметры макросов выберите нужный вариант.
Примечание: Все изменения, внесенные в категории Параметры макросов в Excel, применяются только к Excel и не влияют на другие приложения Microsoft Office.
Доступ к центру управления безопасностью также можно получить из окна «Параметры Excel». Для этого нажмите кнопку Параметры (Excel 2010–2016) или кнопку Microsoft Office (Excel 2007), а затем выберите центр управления > Центр управления Параметры >Макрос Параметры.
Дополнительные сведения о безопасности макросов см. в следующих статьях:
- Добавление, удаление и изменение надежного расположения
- Добавление, удаление и просмотр надежного издателя
- Включение и отключение макросов в файлах Office
- Включение и отключение предупреждений системы безопасности о ссылках и файлах с подозрительных веб-сайтов
- Просмотр параметров в центре управления безопасностью
Устранение неполадок
Не удается изменить параметры безопасности макросов
Некоторые пользователи не могут изменять параметры центра управления безопасностью из-за групповых политик безопасности в их организациях. В таких случаях необходимо обратиться к ИТ-администратору организации.
Что случилось с параметрами безопасности «Очень высокий», «Высокий», «Средний» и «Низкий»?
Параметр Excel 2003
Эквивалент в Excel 2007/2010/2013/2016
Дополнительные сведения
Отключить все макросы без уведомления
В Excel 2003 макросы VBA выполняются только при условии, что выбран параметр «Доверять всем установленным надстройкам и шаблонам» (в Excel 2003 на вкладке «Надежные издатели» в диалоговом окне «Безопасность») и макросы (с подписью или без) хранятся в определенной надежной папке на жестком диске пользователя.
Если эти условия не соблюдены, то при использовании параметра «Очень высокий» макросы VBA не выполняются в Excel 2003.
Отключить все макросы кроме макросов с цифровой подписью
В Excel 2003 могут выполняться только исполняемые файлы (EXE или COM), подписанные утвержденным надежным источником (то есть имеющие сертификат). В противном случае все исполняемые модули, связанные с документами или внедренные в них, автоматически отключаются без предупреждения, когда пользователь открывает документы.
При установке всех приложений Office 2003 по умолчанию задается параметр «Высокий».
Отключить все макросы с уведомлением
В Excel 2003 пользователям при открытии документа предлагается включить или отключить исполняемые модули. На этом уровне необходимо принять сертификат для каждого исполняемого модуля, добавив сертификат в соответствующий сегмент реестра на компьютере под управлением Windows.
Последующие запросы на выполнение макроса от надежного источника принимаются автоматически (исполняемые модули выполняются без предварительного запроса пользователя).
Включить все макросы (не рекомендуется, возможен запуск опасной программы)
В Excel 2003 все макросы выполняются без ограничений. Этот уровень безопасности не защищает от вредоносных программ, не позволяет принимать сертификаты и не считается безопасным в целом. Этот уровень использовать не рекомендуется.
Дополнительные сведения
Вы всегда можете задать вопрос эксперту в Excel Tech Community или получить поддержку в сообществах.
Отмена всех действий макросом vba
Возможно ли макросом vba отменить действия совершенные руками? Есть файл с данными и много формул, результаты формул правятся вручную. Затем нужно все вернуть как было до правок. ctrl+z решает проблему, но это очень много кликов совершить надо)
Отслеживать
задан 12 авг 2019 в 5:08
57 1 1 серебряный знак 13 13 бронзовых знаков
Excel, что ли? не-а. Application.Undo отменяет только одно последнее действие, и то с выпендронами. Затем нужно все вернуть как было до правок. Сохранить до правок, потом, не сохраняя последнего состояния, перечитать файл (ещё очень способствует ReadOnly флаг на файле).
12 авг 2019 в 5:26
Да, эксель. Так и делаю, но перезапуск файла занимает с пол минуты, не хочется ждать, вот и ищу способы) Спасибо
12 авг 2019 в 5:33
Похоже на поиск костыля при неправильных действиях. результаты формул правятся вручную — это как? Замена части формул значениями?
12 авг 2019 в 5:38
да, замена значениями, потому что в данный момент нет четкого алгоритма работы, приходится некоторые значения подправлять вручную, в зависимости от разных показателей. Можно конечно их все в формулы вписать, но и долго и запутано в итоге получится)
12 авг 2019 в 5:43
Еще раз (поверьте опыту): Вы ведете себя к еще большим проблемам. Можно в формулах ставить проверки, ограничения, но нельзя заменять формулы значениями там, где должны работать формулы. Меняйте подход к работе с данными.
