Возможно, но также очень вероятно, что настройки безопасности макросов пользователя не позволят этому сработать изначально.
Чтобы настроить параметры безопасности (все примеры для 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
)