mokc0der, 1. Попробуй поставить перед вызовом функции:
Application.EnableCancelKey = xlDisabled
,только не забудь после вызова вернуть этому свойству значение xlInterrupt.
2. Подкину простой пример (доступ к тексту макросов из той же книги, строки обрезаются слева, комментарии не анализируются):
Sub TrimLeftSpaces() Dim P As VBComponent Dim P1 As CodeModule Dim i, j, Cnt, LineCnt As Integer Dim S As String Cnt = Application.VBE.ActiveVBProject.VBComponents.Count For i = 1 To Cnt Set P = Application.VBE.ActiveVBProject.VBComponents(i) If P.Type = vbext_ct_StdModule Then 'это только в стандартных модулях; сменишь условие, если нужно обработать, например, модули кода для листов Set P1 = P.CodeModule LineCnt = P1.CountOfLines For j = 1 To LineCnt S = P1.Lines(j, 1) P1.DeleteLines j P1.InsertLines j, LTrim(S) Next End If Next End Sub
Только нужно подключить в редакторе VB Tools -> References -> Microsoft Visual Basic for Application Extensibility x.x (зависит от версии; у меня Office 2000, и файл лежит в Program Files\Common Files\Microsoft Shared\VBA\VBA6\vbe6ext.olb)
Сообщение отредактировал Квазимодо - Четверг, 30 Декабря 2004, 14:13
--------------------
Я долго учился на чужих ошибках, и теперь мои собственные ошибки не хуже, чем у других.
|