n использовать Object Brouser (вид/просмотр объектов) для просмотра объектов, их методов и свойств.
Пример работы как с объектами Excel, так и Project
Sub GetTask()
Dim msProj As Object, aTask As String
Запуск Project и открытие файла:
MSProject.Application.FileOpen Name := “I:\BVN\BOOKPLAN.MPP”
Сохранение имени первой задачи в переменной
aTask = MSProject.Application.Projects(1).Task(1).Name
Отображение имени задачи в ячейке таблицы:
Sheets(“Лист1”).Range(“A1”).Value = aTask
Закрытие файла и завершения программы Project:
MSProject.Application.FileExit
End Sub
Объекты разных приложений могут иметь одни имена, поэтому желательно использовать полные их имена:
Application.Name - даст имя Excel
MSProject.Application.Name - даст имя Project.
Многие программы остаются невидимыми после старта с помощью OLE Automation. Такие программы не отображаются в списке задач. Чтобы сделать такую программу видимой после старта надо установить свойство Visible этой программы в True:
MSProject.Application.Visible = True
Создание и открытие объектов через OLE Automation для частично OLE согласованных программ осуществляется методами.
n метод 1 - CreateObject() - создает новый объект
n метод 2 - GetObject() - открывает существующий объект
Для полностью OLE согласованных программ (MS Offise) осуществляется методами связных объектов.
Set объектная_переменная = CreateObject(класс)
Класс состоит из двух частей:
Регистрационное_имя.Объект
Пример: Set xl = CreateObject(“Excel.Sheet”) - создается новый лист в Excel
Set PS = CreateObject(“MSProject.Project”) - запускается Project с новой чистой страницей
|
Пример использования GetObject:
Set Объектная_переменная = GetObjec(имя_файла, класс)
Set XL = GetObjec (“D:\Proj\Cost.XLS”, “Excel.Sheet”)
Внедрение объектов в программу:
Sub LinkToWord ()
Dim WordObj As Object, ChannelNun As Integer
Выбор и копирование таблицы
Sheets(“Лист1”).Select
Range(“A1:F6”).Select
Selection.Copy
Запуск Word
Set WO = CreateObject(“Word.Basic”)
AppActivate “Microsoft Word”
WO.FileNew
Применение DDE для передачи дерективы
ChannelNum =Application.DDEInitiate (“WinWord”, “System”)
Следующую команду рекомендую записамт макро рекордером и потом вставить
DDEExecute ChannelNum, “[EditPasteSpecial .Link=1, .Class=””Excel.Sheet.5””, .DataType = “”Object””]”
DDETerminate ChannelNum
End Sub
Экспериментируя с OLE Вы можете столкнуться с проблемой - разрушение системы.
5. Передача нажатий клавиш программам под Windows
Используется только тогда, когда нельзя воспользоваться DDE или OLE.
Оператор SendKeys в качестве своих аргументов передает любые символы любой программе, имеющей активное окно. Поэтому программу сначала надо сделать активной:
AppActivate Заголовок_окна
AppActivate MSProject.Application.Caption
Имеется оператор Shell: ID = Shell (путь, стиль_окна)
Код стиля |
Описание |
1, 5, 9 |
Обычное с фокусом |
2 |
Минимизированное с фокусом |
3 |
Максимизированное с фокусом |
4, 8 |
Обычное без фокуса |
6, 7 |
Минимизированное без фокуса |
hwin = Shell (“I:\Win\Winword.exe”, 3)
SendKeys строка, ждать строка - нажатие клавиш ждать - если его нет или False все нажатия передаются в буфер обмена и пока программа не перешла в режим ожидания или не выполнила оператор DoEvents - не получит их
True - получит их немедленно
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.