Artigo: 288902 - Última revisão: quarta-feira, 31 de Janeiro de 2007 - Revisão: 9.3 Comportamento GetObject e CreateObject de servidores de automatização do Office
Nesta páginaSumárioEste artigo descreve os diferentes comportamentos que ocorrem quando utiliza as funções GetObject e CreateObject com várias versões de aplicações do Microsoft Office. GetObject e CreateObject são funções que são fornecidas pelo Microsoft Visual Basic e Microsoft Visual Basic for Applications (VBA). No entanto, as informações também se aplicam ao Microsoft Visual C++ se processar as referências para GetObject como chamadas para GetActiveObject API e referências a CreateObject como chamadas para CoCreateInstance API. Mais InformaçãoGetObjectGetObject é utilizado para ligar a uma instância em execução de um servidor de automatização. Existem algumas formas diferentes de chamada a GetObject , mas a sintaxe é recomendada para o Microsoft Office aplicações é o seguinte:Erro de tempo de execução '429': O componente ActiveX não é possível criar o objecto Pode anexar a uma instância específica, se souber o nome de um documento abrir essa instância. Por exemplo, se uma instância do Excel estiver em execução com um livro aberto com o nome Book2, o seguinte código anexa com êxito a essa instância mesmo que não seja a primeira instância que foi iniciada: CreateObjectCreateObject é utilizado para iniciar uma nova instância de um servidor de automatização. Por exemplo:A tabela seguinte funciona como uma referência útil ao implementar uma solução com o Microsoft Office. Lista os comportamentos e atributos de várias versões e aplicações do Microsoft Office, tal como se o servidor assume como predefinição a ser visível quando iniciado, se for SingleUse ou MultiUse, se tiver um UserControl propriedade, se tiver um método de Sair e o nome de classe para a janela principal. Reduzir esta tabela
O nome de classe de janela é útil para chamar a API FindWindow quando pretender saber convenientemente se qualquer já está a ser executado. UserControl propriedade é uma propriedade booleana que indica se a aplicação de servidor encerra automaticamente quando a última referência é disponibilizada (definida como nada). O método quit permite-lhe substituir a propriedade UserControl nos casos em que é necessário (por exemplo, quando uma instância não encerra após a última referência comercialização). Em geral, a Microsoft recomenda que utilize uma nova instância de uma aplicação do Office em vez de anexar a uma instância que o utilizador poderá estar a utilizar. É melhor criar uma instância utilizando ProgID de aplicações e, em seguida, abrir ou criar novos objectos a partir daí. Outros ProgID, tais como Excel.folha e Word.Document e por aí em diante, destinam-se para utilização no OLE (objecto de ligação e incorporação) e pode devolver resultados inconsistentes quando utilizado com CreateObject . Ao utilizar o ProgID de aplicações, evitar potenciais problemas iniciando explicitamente o servidor de automatização (não incorporar). Quando tiver terminado com o servidor de automatização, libertar todas as referências ao mesmo e chamar o método quit (se disponível) para que o servidor é encerrado como previsto. Se pretende configurar uma instância através de automatização e, em seguida, deixe aberta para o utilizador a utilizar, terá de definir a propriedade UserControl para TRUE e, em seguida, libertar todas as referências. O servidor permanece em seguida, executar (porque a propriedade UserControl é TRUE ) e é encerrado correctamente quando o utilizador fecha a aplicação (porque existem sem referências pendentes). Nota Para o Word, a propriedade de UserControl é só de leitura. Não pode ser definido como VERDADEIRO ou FALSO. Word sempre permanece em execução quando a última referência é lançada. ReferênciasPara obter mais informações sobre como utilizar GetObject/CreateObject e para obter informações sobre algumas excepções e problemas relacionados com utilizando a automatização para Microsoft Office, clique em números de artigo que se seguem para visualizar os artigos na base de dados de conhecimento da Microsoft: 222783
(http://support.microsoft.com/kb/222783/
)
PPT2000: CreateObject não criar nova sessão do PowerPoint 188546
(http://support.microsoft.com/kb/188546/
)
Erro: Iniciar manualmente o Word utiliza a mesma instância como automatização 265385
(http://support.microsoft.com/kb/265385/
)
INFO: A automatização do PowerPoint 97 e PowerPoint 2000 visualizadores 259940
(http://support.microsoft.com/kb/259940/
)
Erro: O Word 2000 não ser quando Keybindings.ClearAll É chamada 258511
(http://support.microsoft.com/kb/258511/
)
COMO: Obter o identificador de janela para a aplicação do Office para automatização 249169
(http://support.microsoft.com/kb/249169/
)
PPT97: PowerPoint 97 permanece na memória depois de obter uma apresentação e a ser fechado 159922
(http://support.microsoft.com/kb/159922/
)
XL97: Utilizar o método Quit pode causar a operação ilegal A informação contida neste artigo aplica-se a:
Tradução automáticaIMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado. Clique aqui para ver a versão em Inglês deste artigo: 288902
(http://support.microsoft.com/kb/288902/en-us/
)
| Outros Recursos Outros Sites de Suporte
ComunidadesObtenha Ajuda AgoraTraduções de Artigos
|






Windows Live
Facebook
Twitter
Linkedin
Digg it
Yahoo
Delicious
StumbleUpon
Yammer
Reddit
Technorati
FriendFeed
Email


Voltar ao topo