Запретить отправку открытого документа Excel - PullRequest
0 голосов
/ 16 мая 2018

Есть ли возможность запретить пользователю отправлять документ Excel, пока он еще открыт?

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

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

Я знаю, что это тяжело, но есть ли возможность предотвратить это?

Как, например, с некоторой разновидностью контрольных сумм / шифровальных махинаций, которые повреждают документ при открытии, таким образом делая посланную копию в этом состоянии бесполезной / недоступной / поврежденной. Документ будет снова «исправлен» только при сохранении (и, следовательно, при удалении важных данных).

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

Любая помощь очень ценится. Заранее спасибо!

И всем привет! (первое сообщение) Это место - спасатель.

РЕДАКТИРОВАТЬ: Для уточнения: 1. Пользователи получают документ Excel. 2. Они вводят в него личные данные сотрудников / заявителей и т. Д., И мой документ очень интересен. 3. Вывод генерируется, который должен перейти в какой-то другой инструмент. 4. Цель документа Excel выполнена, и он должен очистить себя от грязных личных данных.

Это достигается как описано ранее. Сохранение и т. Д. Все разобрано.

Проблема, с которой мне сказали иметь дело, состоит в том, чтобы сделать невозможным отправку документа, пока он все еще содержит личные данные. Закрытие стирает его, но пока оно открыто, содержит личные данные и может взаимодействовать с Outlook и т. Д.

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

Ответы [ 2 ]

0 голосов
/ 16 мая 2018

A: Управление шифрованием контрольной суммы / температуры будет довольно рискованным, поскольку, если ваш код падает или останавливается и закрывается, файл либо поврежден, либо зашифрован для вас, так что информация может быть потеряна.

B:Вы можете скопировать файл во временную папку во время редактирования.

C: Вы можете заблокировать функцию сохранения / автосохранения в Excel, чтобы редактирование не сохранялось на полпути. (Не очень хорошорешение, но решение, скорее всего, довольно простое).

РЕДАКТИРОВАТЬ:

Для варианта C:

Вставьте это в книгу, она работает, как ее имя, до сохранения.

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
//INSERT INSTRUCTION TO REMOVE PERSONAL DATA
End Sub

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

0 голосов
/ 16 мая 2018

и добро пожаловать.

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

A: Вы можете работать с кодовым словом в указанной ячейке. Когда вы сохраняете файл, он помещает слово в эту ячейку. Когда слова там нет ..... ну, скажем, вы можете создать некоторый макрос в Workbook.Open, который удалит все значения ячеек и сохранит файл в его текущем местоположении. Очевидно, поставить пароль на кодирование VBA!

B: На мой взгляд, более надежным способом является работа с файлом в вашей личной рабочей области, если это возможно, и после сохранения файла создайте копию в общую папку с помощью vba.

Удачи с этим.

...