Я хочу просмотреть множество файлов макросов Excel и изменить изменения в коде. Все эти файлы / проекты защищены известным паролем. Мне удается открыть проект (ы) с паролем. Задача состоит в том, чтобы закрыть окно «VBAProject - Project Properties», то есть нажать кнопку OK. Я нахожу обработчик окна, но не могу закрыть окно. Фактически, он исчезает через 3-5 секунд, но задержка создает более поздние проблемы в коде. (Макрос висит!). Он отлично работает с парой файлов, но если их больше пяти, макрос завершается ошибкой. Файлы находятся в Citrix.environment.
With objWordApp.VBE
For Each VBProj In .VBProjects
Debug.Print VBProj.FileName
lCntr = lCntr + 1
If VBProj.FileName = sPath Then
Set .ActiveVBProject = .VBProjects(lCntr)
objWordApp.VBE.CommandBars(1).FindControl(ID:=2578, recursive:=True).Execute
strResult = GetHandleFromPartialCaption(lhWndP, "Password")
ChildRet = FindWindowEx(lhWndP, ByVal 0&, "Edit", vbNullString)
If ChildRet <> 0 Then
SendMess MyPassword, ChildRet
DoEvents
hwnd = FindWindowEx(lhWndP, ByVal 0&, "BUTTON", "OK") 'vbNullString)
If hwnd = 0 Then
Debug.Print "Couldn't find the button"
End If
Call SendMessageBynum(hwnd, BM_CLICK, 0, 0)
strResult = GetHandleFromPartialCaption(lhWndP, "TemplateProject")
DoEvents
hwnd = FindWindowEx(lhWndP, ByVal 0&, "BUTTON", "OK") 'vbNullString)
If hwnd = 0 Then
Debug.Print " TemplateProject Couldn't find the button " & sPath
End If
Call SendMessageBynum(hwnd, BM_CLICK, 0, 0)
End If
Set objProjectToBeedited = .ActiveVBProject
Exit For
End If
Next
End With