Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 29.11.2006, 23:20   #1
nextaty
 
Регистрация: 29.11.2006
Сообщений: 8
По умолчанию защитить лист экселя от копирования

Знатоки, подскажите плиз. Нужно из VBA защитить лист таким образом, чтобы нельзя было выделять ячейки и копировать их в буфер, а потом, скажем, на другой лист. Из меню такая защита листа возможна, а вот метод Protect у меня так не работает. Буду очень благодарен, если поможете с этим справиться.
nextaty вне форума
Старый 30.11.2006, 02:33   #2
pashulka
Форумчанин
 
Регистрация: 03.11.2006
Сообщений: 524
По умолчанию

Если используя стандартные средства Вам удалось достичь нужного эффекта, то получить нужный макрос можно, если воспользоваться макрорекордером. Для этого в меню Сервис выберите пункт Макрос и команду Запись макроса, затем проделайте все манипуляции, которые позволяют получить нужный результат, после чего нажмите кнопку Остановить макрос. Теперь, Вы можете в редакторе VBA посмотреть на полученный результат и при необходимости, подвергнуть его корректировке (как правило, это удаление лишних операций)
pashulka вне форума
Старый 30.11.2006, 11:37   #3
nextaty
 
Регистрация: 29.11.2006
Сообщений: 8
По умолчанию

спасибо, что напомнили такой удобный способ поиска нужных возможностей Vba. к сожалению, в данном случае этот способ не помог. сгенирированный макрос работает не так как команды меню. защита листа от копирования, установленная с помощью макроса, легко обходится, если сохранить файл под другим именем, а потом открыть заново. в то же время, когда защита установлена из меню, защита сохраняется при сохранении файла. где-то в сети я наткнулся на мнение, что макросом защиту от копирования установить в экселе нельзя. неужели это так? помогите, пожалуйста! очень нужно для работы!
nextaty вне форума
Старый 30.11.2006, 11:54   #4
nextaty
 
Регистрация: 29.11.2006
Сообщений: 8
По умолчанию

забыл сказать, что готов заплатить за решение проблемы.
nextaty вне форума
Старый 30.11.2006, 19:58   #5
pashulka
Форумчанин
 
Регистрация: 03.11.2006
Сообщений: 524
По умолчанию

Вы правы, макрорекордер вещь очень полезная, и если бы Вы знали, сколько на форумах задаётся вопросов, которые можно решить с его применением, т.е. самостоятельно, то по достоинству оценили бы эту функцию.
Что касается защиты от копирования, то возможно мы с Вами говорим о разных вещах и/или разных версиях, но банальная защита листа (даже вкупе с запретом выделения ячеек EnableSelection и ограничением области ScrollArea) не позволяет защититься от копирования. Во всяком случае, мне в MS Excel 97 ничто не мешает копировать "защищённые" подобным образом данные. И здесь нет разницы как установлена защита и была ли сохранёна рабочая книга под другим именем, в любом случае копирование возможно и не представляет особой сложности.
Да, и здесь есть ещё один нюанс: если Вы считаете, что установка защиты вручную поможет Вам защитить свои данные, то зачем использовать макросы ... ведь при желании, рабочую книгу можно открыть - отключив макросы. А если Ваш пароль хранится в "открытом" виде, то всегда найдётся человек, который найдёт в сети программу по определению или подбору пароля к VBProject, воспользуется ей и получит доступ к Вашему паролю и исходникам. Думаю, что если Вы действительно хотите защитить свои данные, то имеет смысл подумать о шифровании всего файла, хотя, если Вы пользуетесь этим файлом ежедневно, то постоянная шифр/дешифр не самое лучшее решение.
pashulka вне форума
Старый 30.11.2006, 20:14   #6
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Сообщений: 17,609
По умолчанию

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

Но у хакеров, есть много других способов добычи информации, поэтому шифрование не обеспечит сохранность данных.

А если вы готовы заплатить и т.д. напишите ваше сообщение в разделе работа, по всем правилам.
Alar вне форума
Старый 30.11.2006, 23:26   #7
nextaty
 
Регистрация: 29.11.2006
Сообщений: 8
По умолчанию

я поясню схему моей работы, потому что вижу из ответов недопонимание чего мне надо. я программно (без всякого моего участия в течении дня) в аутлуке с обращением объектной модели экселя формирую письма с вложенным файлом экселя и отсылаю это покупателям информации. в экселевском файле нет макросов. макросы (точнее программа Vba) работает при формировании вложенного в письмо файла. задача состоит в том, чтобы максимально затруднить дальнейшую перепродажу информации. если, скажем, во вложенном экселевском файле будет вставлен мой телефон и файл не будет поддаваться никакой модификации, то пересылать его дальше перепродавцу будет неудобно. фактически, я уже размышляю, как сделать таблицу с моей информацией в формате Jpeg. но это, если с экселем ничего не получится. покупатели - люди далекие от программирования и научить их открывать Jpeg файлы - проблема. ну вот вроде все объяснил. может быть, что-нибудь посоветуете?
nextaty вне форума
Старый 30.11.2006, 23:32   #8
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Сообщений: 17,609
По умолчанию

если сделать Jpeg файл, то его тоже будет легко изменить...
Alar вне форума
Старый 30.11.2006, 23:59   #9
nextaty
 
Регистрация: 29.11.2006
Сообщений: 8
По умолчанию

на самом деле, я сообразил с опозданием, что картинку с информацией можно вставить в файл экселя и с открыванием у пользователя проблемы не возникнет. вопрос в том, каким образом диапазон ячеек листа экселя программно переделать в картинку Jpeg?
nextaty вне форума
Старый 01.12.2006, 01:50   #10
pashulka
Форумчанин
 
Регистрация: 03.11.2006
Сообщений: 524
По умолчанию

Я думаю, что создавать .jpeg файл, только для дальнейшего импорта - не нужно, ибо можно поступить проще, а именно: создать скриншот диапазона, так сказать непосредственно. Пример прилагается (обратите внимание на то, что за создание скриншота отвечают всего две инструкции)

Код:
Private Sub Create_ScreenShoot_Range()
 
Const xlWBATWorksheet = -4167 'Если используется позднее связывание, то
Const xlScreen = 1            'нам нужно указать значения используемых констант
Const xlPicture = -4147       'или же использовать их числовые значения непосредственно
 
With CreateObject("Excel.Application")
     .Visible = True 'False 'Default
     With .Workbooks.Add(xlWBATWorksheet) 'Or (-4167) и т.д.
          .Parent.ActiveWindow.DisplayGridlines = False
          'Только если Вам необходимо убрать сетку с экрана
          With .Worksheets(1).Range("B1:G10")
               .Formula = "=RAND()" 'Только для имитации наличия данных
               .CopyPicture Appearance:=xlScreen, Format:=xlPicture '(1)
               .Worksheet.Paste Destination:=.Item(1) '(2)
               .Clear
          End With
          .Close saveChanges:=True
     End With
     .Quit
End With
 
End Sub
pashulka вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Копирование участка текста из Экселя в Ворд Devourer12345 Microsoft Office Excel 3 30.07.2008 08:13
Как защитить программу от копирования 1234 Общие вопросы Delphi 5 24.07.2008 21:30
Как защитить рабочий лист от ввода с клавиатуры, но не от действий макроса ? valerij Microsoft Office Excel 7 28.05.2008 23:59
из экселя в БД Shark2112 Microsoft Office Excel 1 16.10.2007 08:04
защитить лист zetrix Microsoft Office Excel 2 27.11.2006 17:21