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

Отключить копирование и вставку теоретически достаточно просто. Все, что вам нужно сделать, это использовать короткий макрос, как показано ниже, в объекте ThisWorkbook:

Private Sub Worksheet_Deactivate()

If ActiveSheet.ProtectContents = True Then         Application.CutCopyMode = False     End If End Sub

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

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

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

Есть очень простые способы проверить, не является ли полученный вами дубликат. Вот некоторые из них:

  • Поместите формулу в ячейку, а затем скройте содержимое ячейки во время процесса защиты. Если вы вернули рабочий лист, сняли защиту с рабочего листа, а формулы там нет, рабочий лист будет копией.

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

  • Используйте на листе скрытые формулы для доступа к данным на скрытом листе. Если пользователь копирует рабочий лист, скрытый рабочий лист не копируется в новую книгу, поэтому формулы не дадут правильных ответов.

  • Вставьте макромодуль в книгу, а затем защитите модуль. Модулю не нужно ничего делать, но если в книге, которую вы возвращаете, нет защищенного модуля, это копия.

  • Добавьте что-нибудь в область настраиваемых свойств книги. Если настраиваемого свойства нет в возвращаемой книге, велика вероятность, что книга не является оригинальной.

Еще одна вещь, которую следует попробовать, — установить для свойства защиты ячейки значение Скрытый, прежде чем защищать ваш рабочий лист паролем. Пользователи могут видеть результаты того, что находится в ячейках, но не могут видеть формулы. Если они скопируют и вставят содержимое в другое место, формулы не будут перенесены, только результаты. Это очень легко заметить в возвращенной книге.

_Примечание: _

Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.

link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

ExcelTips — ваш источник экономичного обучения Microsoft Excel.

Этот совет (3322) применим к Microsoft Excel 97, 2000, 2002 и 2003. Вы можете найти версию этого совета для ленточного интерфейса Excel (Excel 2007 и более поздних версий) здесь:

link: / excelribbon-Preventing_Someone_from_Recreating_a_Protected_Worksheet [Предотвращение кем-либо воссоздания защищенного рабочего листа].