Основне информације о ОЛЕ аутоматизацији помоћу ВБА у Мицрософт Екцелу

Anonim

Када желите да користите функције других апликација, морате одлучити да ли желите да их користите
рано или касно везивање објектних променљивих.

Рано везивање

Везивање између променљиве објекта и објекта се одвија приликом компајлирања апликације.
Ово резултира бољим перформансама у поређењу са временом везивања када се апликација покреће (касно везивање).
Ако желите да направите рано везивање, морате поставити референцу на "страну" библиотеку објеката коју желите да користите.
Ово се ради из ВБЕ -а помоћу менија Алати, Референце …. Када се ВБПројецт позива на
библиотеку објеката можете декларисати одређене променљиве објекта (нпр. Дим оДоц као Ворд.Доцумент). Ово ће такође успети
лакше програмирање "страних објеката" јер ће ВБЕ приказати исту помоћ у програмирању у вези са својствима,
методе и догађаје које приказује за објекте који припадају апликацији на којој радите
фром (ВБЕ је аутоматски унапред додао референцу на ову апликацију).
Ово је општи пример кода који приказује грешку вба аутоматизације:

Суб ОЛЕАутоматионЕарлиБиндинг () 'замените ккк једним од следећих:' Аццесс, Екцел, Оутлоок, ПоверПоинт или Ворд Дим оАпп Ас ккк.Апплицатион 'рано везивање Дим оДоц Ас ккк.Доцумент' Екцел.Воркбоок, Оутлоок.МаилИтем, ПоверПоинт.Пресентатион , Ворд.Доцумент Он Еррор Ресуме Нект 'игнорисање грешака Подесите оАпп = ГетОбјецт (, "ккк.Апплицатион")' референцу на постојећу инстанцу апликације Ако оАпп није ништа Тада 'не ради ниједна апликација Поставите оАпп = Нова ккк.Апплицатион' креирајте нова инстанца апликације Крај ако је грешка ГоТо 0 'настави нормално руковање грешкама Ако оАпп није ништа Тада' не могу да креирам апликацију МсгБок "Апликација није доступна!", вбЕкцламатион Крај ако је са оАпп .Висибле = Труе 'направи објекат апликације видљиво 'у овом тренутку апликација је видљива' урадите нешто у зависности од апликације … Подесите оДоц = .Доцументс.Опен ("ц: \ име фасцикле \ име датотеке.доц") 'отворите документ' … оДоц.Цлосе Труе 'затворите и сачувајте документ. Затворите затварање апликације Енд Витх Сет оДоц = Ништа 'слободна меморија Сет оАпп = Ништа' слободна меморија Енд Суб

Касно везивање

Везивање између променљиве објекта и објекта се одвија приликом покретања апликације.
Ово резултира споријим перформансама у поређењу са временом везивања када се апликација састави (рано везивање).
Ако не додате референцу на библиотеку објеката која припада "страној" апликацији морате
декларишите опште променљиве објекта (нпр. Дим оДоц као објекат). Ово ће отежати програмирање
„страни објекти“ пошто ВБЕ неће приказивати исту помоћ у програмирању у вези са својствима,
методе и догађаје које приказује за објекте који припадају апликацији из које радите.
Ово је општи пример кода:

Суб ОЛЕАутоматионЛатеБиндинг () 'замените ккк једним од следећих:' Аццесс, Екцел, Оутлоок, ПоверПоинт или Ворд Дим оАпп Ас Објецт 'касно везивање Дим оДоц Ас Објецт' касно везивање Он Еррор Ресуме Нект 'игноришите грешке Сет оАпп = ГетОбјецт (, "ккк.Апплицатион") 'референцирајте постојећу инстанцу апликације Ако оАпп није ништа Тада' нема активне апликације Постави оАпп = ЦреатеОбјецт ("ккк.Апплицатион") 'креирајте нову инстанцу апликације Крај ако је грешка Иди на 0' настави нормалну грешку руковање Ако оАпп није ништа Тада 'не могу да креирам апликацију МсгБок "Апликација није доступна!", вбЕкцламатион Крај ако је са оАпп .Висибле = Труе' учини објекат апликације видљивим 'у овом тренутку апликација је видљива' уради нешто у зависности на апликацији… Подесите оДоц = .Доцументс.Опен ("ц: \ име фасцикле \ име датотеке.доц") 'отвори документ' … оДоц.Цлосе Труе 'затвори и сачувај документ. Затвори' затвори апликацију Заврши са Сет оДоц = Нотхинг 'фрее мемори Сет оАпп = Нотхинг' фр ее меморија Енд Суб