Sintomas
Quando o Microsoft Excel carrega um suplemento de Automatização durante o modo de edição de células, o Excel falha. Este problema só ocorre com suplementos de Automatização que foram Carregados a Pedido para o Excel.
Causa
Este problema pode ocorrer quando um suplemento é carregado se o suplemento apresentar um formulário ou caixa de diálogo ou se o suplemento fizer um pedido de Automatização para o Excel que tente alterar o estado do Excel. A lista seguinte inclui exemplos de pedidos de Automatização que podem fazer com que o Excel falhe quando é chamado enquanto um suplemento de Automatização carrega durante o modo de edição de células:
-
Altere programaticamente a seleção atual. Por exemplo:
Application.ActiveSheet.Range("A1").Select -
Chamar uma propriedade ou método de um item na coleção do Windows. Por exemplo:
Application.ActiveWindow.Zoom = 200
-
Altere uma definição do Excel, como o modo de cálculo. Por exemplo:
Application.CalculationMode = xlManual
Todos estes itens são exemplos de tentativas de código para alterar o ambiente do Excel, um livro ou uma folha de cálculo; estes tipos de ações não são permitidos no modo de edição.
Resolução
Não experimente as ações mencionadas acima enquanto o suplemento é carregado. Os métodos de suplementos chamados durante a carga incluem o método Initialize e, se o suplemento automatização implementar a interface IDTExtensibility2, os métodos OnConnection e OnStartupComplete também.
Estado
A Microsoft confirmou que se trata de um erro nos produtos Microsoft listados no início deste artigo.
Mais Informações
Passos para Reproduzir Problema
-
Inicie um novo projeto DLL ActiveX no Visual Basic.
-
No menu Projeto, clique em Propriedades do Projeto1. Altere o Nome do Projeto para TestAddIn e, em seguida, clique em OK.
-
Adicione o seguinte código ao módulo de código para Class1:
Private Sub Class_Initialize() MsgBox "Class_Initialize"End Sub
-
Crie TestAddIn.dll.
-
No Excel, inicie um novo livro.
-
No Microsoft Office Excel 2003 ou no Microsoft Excel 2002, siga estes passos:
-
No menu Ferramentas , aponte para Suplementos e, em seguida, clique em Automatização.
-
Na lista, clique em TestAddIn.Class1 e, em seguida, clique em OK.
-
Na caixa de diálogo Suplementos , clique em OK.
No Microsoft Office Excel 2007, siga estes passos:
-
Clique no Botão do Microsoft Office e, em seguida, clique emOpções do Excel.
-
Clique no separador Suplementos .
-
Na lista Gerir , clique em Suplementos do Excel e, em seguida, clique em Ir.
-
Na caixa de diálogo Suplementos , clique emAutomatização.
-
Na lista, clique em TestAddin.Class1 e, em seguida, clique em OK.
-
Clique em OK.
-
-
Escreva =a em qualquer célula. É apresentada uma caixa de mensagem com o texto "Class_Initialize".
-
Clique em OK para dispensar a caixa de mensagem. Após alguns segundos, o Excel falha.
Referências
Para obter informações adicionais, clique no seguinte número de artigo para ver o artigo na Base de Dados de Conhecimento Microsoft:
291392 INFORMAÇÕES: Suplementos e Suplementos de Automatização do Excel COM