Пытаюсь написать проект (EXE-файл) на Visual Basic 2005, который должен брать под контроль уже открытые документы PowerPoint и Excel (версии 2003).
PowerPoint всегда существует как один экземпляр процесса, поэтому следующего вполне достаточно, чтобы "войти" в уже открытую, представленную на экране презентацию (и, например, прочитать ее имя):
Dim ppapp As New PowerPoint.Application
MsgBox(ppapp.ActiveWindow.Caption)
С Excel же это не проходит, т.к. Excel может существовать как множество экземпляров процесса.
Dim xlapp As New Excel.Application
MsgBox(xlapp.ActiveWindow.Caption)
вызывает ошибку "Object reference not set to an instance of an object". Но если создать экземпляр excel.exe-процесса, то это будет еще один, новый экземпляр. Но он мне не нужен, моя цель — войти в уже существующий, именно, в книгу и лист, которые были активными непосредственно до пуска моего EXE-проекта. Как это сделать? Могли бы вы показать конкретное решение? Спасибо.