2009-09-03 5 views
1

В нашем проекте у нас есть шаблон excel (.xlt) и файл надстроек (.xla). Эти файлы используются для создания dataview. Dataview - не что иное, как своего рода отчет. Xla содержит код для создания элементов управления для создания, удаления, управления dataview и его содержимого. Этими элементами управления являются OCX-элементы управления, созданные в VC++ для создания dataview. У нас есть дополнительный код отдельно и файл шаблона отдельно.Цифровая подпись для макроса Excel

Xlt и xla были цифровой подписью для обеспечения того, что код является доказательством несанкционированного доступа. Все работало нормально, пока не появилась цифровая подпись. Создание dataview создается путем открытия файла шаблона (.xlt) и сохранения файла в расширении .xls, тем самым не изменяя файлы xlt и xla с цифровой подписью. Когда мы пытаемся сохранить это, мы получаем следующее сообщение: «Вы пытаетесь изменить подписанный проект. У вас нет подходящей клавиши для подписи проекта ....»

Когда мы даем Сохраните изменения и отмените подпись подпись теряется только для созданного нового файла. Подпись остается неизменной для xlt и xla.

Мы также попытались вручную отредактировать ячейки в excel и сохранить их, но мы не получаем это сообщение выше. Только после создания dataview с помощью элемента управления OCX и сохранения их всплывает вышеприведенное сообщение.

ответ

0

Что вы пытаетесь защитить? Вы подписали всю рабочую книгу/шаблон, или вы подписали только код?

.xls - это копия .xlt, поэтому подпись шаблона также копируется в xls. Идеи:

  1. Попробуйте подписать только код в шаблоне. В среде IDE используйте Инструменты -> Цифровая подпись (Excel 2002/2003)
  2. Удалите весь код из шаблона и поместите его в файл
  3. Если это слишком сложно, добавьте второй код только с кодом от шаблона
0

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

Благодаря Keith Survell в Turbo закона для получения меня в правильном направлении по этому вопросу:

http://help.turbolaw.com/entries/362246-warning-message-you-have-modified-a-signed-project-you-do-not-have-the-right-key-to-sign-this-projec

Я не смог найти авторитетный источник Microsoft, которая объясняет эту проблему.

Смежные вопросы