Por que todas as classes no VBA têm uma propriedade Application?
Gostaria de esclarecer um pouco sobre por que cada classe (ou quase cada aula) no VBA (quando você rola pelo Navegador de objetos) tem umApplication
propriedade.
MSDN diz
Quando usada sem um qualificador de objeto, essa propriedade retorna um objeto Aplicativo que representa o aplicativo Microsoft Excel. Quando usada com um qualificador de objeto, essa propriedade retorna um objeto Aplicativo que representa o criador do objeto especificado (você pode usar essa propriedade com um objeto de Automação OLE para retornar o aplicativo desse objeto). Somente leitura.
A primeira frase é bem clara. Seu aplicativo de hospedagem usado sem um qualificador pode ser um dos produtos do MS Office que oferecem suporte ao VBA.
No ExcelDebug.Print Application
= Microsoft Excel
Em palavraDebug.Print Application
= Microsoft Word
etc ...
mas ... a segunda frase não está totalmente clara para mim ... então estou pensando que não importa para onde você ligue.Application
sempre retornará o host de um objeto ...
Application
propriedade?PS. você sempre pode ligar.Parent
=>.Parent
subir a hierarquia ... não é? Você pode simplesmente chamar oApplication
sagacidade nenhum qualificador para conseguir isso ...
Não consigo nem pensar em um cenário SSCCE OLE para isso, desculpe-me por não fornecer um exemplo. oApplication
propriedade (não ser confundido comApplication
classe) está mal documentado, é por isso que estou pedindo a alguém com mais experiência que esclareça isso para mim.
1 (bem, mais ou menos), mas não tenho certeza se ele se aplica aqui, pode estar usando o Interop for Office. Por exemplo, quando você tem um aplicativo externo que abre dois arquivos (um Excel e um Word), obtendo referências paraRange
s em ambos, você poderá retornarMicrosoft Excel
eMicrosoft Word
.. mas isso seria útil para alguém? hmm .. Não estou entendendo todo esse conceito?