Найти в Дзене

📌 Защита Excel: как установить ограничения на сохранение файла под другим именем

Оглавление

Всем привет! 👋

В продолжение темы "защита Excel" сегодня рассмотрим интересный прием, который позволяет предотвратить сохранение файла Excel под другим именем, обеспечивая дополнительный уровень защиты для ваших данных.

Защита Excel: как установить ограничения на сохранение файла под другим именем
Защита Excel: как установить ограничения на сохранение файла под другим именем

Данный подход позволяет предотвратить сохранение книги под другим именем, обеспечивая дополнительный уровень защиты для данных. Он проверяет, была ли нажата кнопка "Сохранить как" и сравнивает имя выбранного файла с текущим именем книги.

-3

▶️ Пример макроса

Ниже приведен код макроса, который должен быть размещен в объекте "ThisWorkbook", а не в модуле. Код будет выполнен автоматически перед сохранением файла:.

Когда вы пытаетесь сохранить файл Excel, макрос будет автоматически выполнен перед сохранением. Он проверяет, была ли нажата кнопка "Сохранить как" (Save As) во время сохранения файла. 
Если кнопка была нажата, макрос отменяет стандартное сохранение и запрашивает новый путь и имя файла. 
Затем макрос сравнивает новое имя файла с текущим именем книги. Если они не совпадают, появляется сообщение, указывающее, что сохранение под другим именем недопустимо. Если же имя файла совпадает с текущим, макрос сохраняет файл под указанным путем и именем.
Когда вы пытаетесь сохранить файл Excel, макрос будет автоматически выполнен перед сохранением. Он проверяет, была ли нажата кнопка "Сохранить как" (Save As) во время сохранения файла. Если кнопка была нажата, макрос отменяет стандартное сохранение и запрашивает новый путь и имя файла. Затем макрос сравнивает новое имя файла с текущим именем книги. Если они не совпадают, появляется сообщение, указывающее, что сохранение под другим именем недопустимо. Если же имя файла совпадает с текущим, макрос сохраняет файл под указанным путем и именем.

▶️ Описание макроса

Код состоит из нескольких блоков, каждый из которых выполняет определенные действия. Ниже приведено подробное описание каждого блока:

  • Объявление переменных: NamePath - строковая переменная, которая будет содержать путь к файлу при сохранении; strName - строковая переменная, которая будет содержать имя файла при сохранении;
    lFind - целочисленная переменная, не используется в данном коде.
  • Проверка условия SaveAsUI: Этот блок кода проверяет значение переменной SaveAsUI, которая указывает, была ли нажата кнопка "Сохранить как" во время сохранения файла. Если значение равно True, это означает, что была нажата кнопка "Сохранить как", и макрос должен выполнить дополнительные действия. Если значение равно False, это означает, что файл сохраняется без изменения имени, и макрос не выполняет никаких дополнительных действий.
  • Отключение событий приложения: В этом блоке кода с помощью Application.EnableEvents = False отключается обработка событий приложения Excel. Это необходимо для предотвращения зацикливания макроса, когда он вызывает событие BeforeSave.
  • Получение пути и имени файла: В этом блоке кода с помощью Application.GetSaveAsFilename открывается диалоговое окно сохранения файла, где пользователь может выбрать путь и указать имя файла для сохранения. Полученные значения сохраняются в переменные NamePath и strName.
  • Проверка условий сохранения: В этом блоке кода проверяются несколько условий:Если значение переменной NamePath равно "False", это означает, что пользователь закрыл диалоговое окно сохранения без выбора файла. В этом случае макрос включает обработку событий (Application.EnableEvents = True) и прерывает выполнение макроса (Exit Sub). Если значение переменной strName не совпадает с именем текущей книги (Me.Name), это означает, что пользователь пытается выполнить сохранение под другим именем. В этом случае появляется сообщение с предупреждением, что сохранение под другим именем недопустимо. Макрос включает обработку событий и прерывает выполнение. Если оба условия не выполняются, это означает, что имя файла совпадает с текущим именем книги, и можно продолжать сохранение.
  • Сохранение: Если все условия прошли успешно, то в этом блоке кода вызывается метод SaveAs для сохранения книги под указанным путем и именем (NamePath). Это гарантирует, что файл сохраняется только под тем же именем.
  • Включение событий и завершение макроса: В конечном блоке кода включается обработка событий (Application.EnableEvents = True), чтобы включить обратно обработку событий приложения Excel. После этого макрос завершает свое выполнение.

▶️ Ограничение

🔔 Как и любая другая защита данный прием имеет свои ограничения.

Макрос запрещает изменять только имя файла. Файл можно сохранить в другом каталоге, другом расположении или на другом диске. Но как вариант защиты для "честных и ленивых" может быть полезен.

▶️ Похожие материалы на тему

https://dzen.ru/media/excel_easy/-zascita-excel-otkliuchaem-funkciiu-sohranit-kak-649f8469b316e234d0ad30db

-5
Наша команда очень заинтересована в создании качественного и полезного контента. Поэтому, если Вам понравился этот урок, не забудьте поблагодарить автора лайком 👍. Если у Вас есть вопросы или своё решение, не стесняйтесь оставить комментарий 💬. Нужно решение для другой проблемы? Пожалуйста, напишите свой вопрос в комментариях 💬, и мы обязательно рассмотрим его в ближайшей теме обзора. Мы ценим Вашу обратную связь 💝, так как это помогает нам оценить, насколько данный материал был полезен для Вас
Наша команда очень заинтересована в создании качественного и полезного контента. Поэтому, если Вам понравился этот урок, не забудьте поблагодарить автора лайком 👍. Если у Вас есть вопросы или своё решение, не стесняйтесь оставить комментарий 💬. Нужно решение для другой проблемы? Пожалуйста, напишите свой вопрос в комментариях 💬, и мы обязательно рассмотрим его в ближайшей теме обзора. Мы ценим Вашу обратную связь 💝, так как это помогает нам оценить, насколько данный материал был полезен для Вас

СКАЧАТЬ ПРИМЕР