Как добавить / удалить строки кода в «ThisWorkbook» файла Excel с помощью vb.net? - PullRequest
0 голосов
/ 11 мая 2009

В соответствии с моим приложением я хочу написать некоторый код строк в «ThisWorkbook» файла Excel, используя vb.net, перед этим нам нужно проверить файл на наличие кода.

Пожалуйста, дайте мне знать любой код или ссылки для справки ..

спасибо ...

Ответы [ 2 ]

1 голос
/ 12 мая 2009

Возможно, но также очень вероятно, что настройки безопасности макросов пользователя не позволят этому сработать изначально.

Чтобы настроить параметры безопасности (все примеры для Excel 2003):

(из рабочей книги): Инструменты> Макрос> Безопасность> Надежные издатели

Теперь вам нужно установить флажок «Доверительный доступ к проекту Visual Basic»

Чтобы прочитать код:

(из редактора VBA): Инструменты> Ссылки и добавьте «Microsoft Visual Basic для приложений, расширяемость 5.3» (фактический файл VBE6EXT.OLB)

Чтобы определить, какой VBProject есть какой, используйте свойство FileName:

For Each vbpItem In Application.VBE.VBProjects
   If (vbpItem.FileName = "C:\foo.xls") Then
      Set vbpProject = vbpItem
   End If
Next vbpItem

Получив проект, вы можете обратиться к модулю по имени:

vbpProject.VBComponents("ThisWorkbook")

и вы можете проверить, сколько строк примерно так:

If (vbpProject.VBComponents("ThisWorkbook").CodeModule.CountOfLines <> 147) Then

С объектом CodeModule вы можете считывать определенные строки (через свойство Lines) и изменять строки (с помощью метода ReplaceLine)

0 голосов
/ 11 мая 2009

Единственное, что я могу найти для этого - это ThisWorkbook.VBProject.VBComponents.Count, который подсчитывает количество модулей в вашем решении VB, а именно Sheets + ThisWorkbook + что-нибудь дополнительное Я не могу найти ничего, что позволило бы вам выполнить разбор кода.

Вы пытаетесь провести какую-то проверку безопасности? Если в ваши рабочие книги вставлялся случайный код, разве черная шляпа не удалила бы этот кодированный чек? Почему бы просто не использовать подписи и подписать их цифровой подписью?

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