Demonstra Passo a passo: Código de chamada em um suplemento VSTO do VBA
Este passo a passo demonstra como expor um objeto em um suplemento VSTO para outras soluções do Microsoft Office, incluindo Visual Basic for Applications (VBA) e suplementos VSTO COM.
Aplica-se a: As informações neste tópico se aplicam a projetos de suplemento VSTO. Para obter mais informações, consulte Recursos disponíveis por aplicativo e tipo de projeto do Office.
Embora este passo a passo usa o Excel especificamente, os conceitos demonstrados pelo passo a passo são aplicáveis a qualquer modelo de projeto de suplemento VSTO fornecido pelo Visual Studio.
Este passo a passo ilustra as seguintes tarefas:
Definir uma classe que pode ser exposta a outras soluções do Office.
Expondo a classe a outras soluções do Office.
Chamando um método da classe a partir do código VBA.
Observação
Seu computador pode mostrar diferentes nomes ou locais para alguns dos elementos de interface do usuário do Visual Studio nas instruções a seguir. A edição do Visual Studio que você possui e as configurações que você usa determinam esses elementos. Para obter mais informações, confira Personalizar o IDE.
Pré-requisitos
Você precisará dos seguintes componentes para concluir este passo a passo:
Uma edição do Visual Studio que inclui o Microsoft Office Developer Tools. Para obter mais informações, consulte Configurar um computador para desenvolver soluções do Office.
Microsoft Excel
Criar o projeto de suplemento VSTO
A primeira etapa é criar um projeto de suplemento VSTO para Excel.
Criar um novo projeto
Crie um projeto de suplemento VSTO do Excel com o nome ExcelImportData, usando o modelo de projeto de suplemento VSTO do Excel. Para obter mais informações, consulte Como: Criar projetos do Office no Visual Studio.
O Visual Studio abre o arquivo de código ThisAddIn.cs ou ThisAddIn.vb e adiciona o projeto ExcelImportData ao Gerenciador de Soluções.
Definir uma classe que você pode expor a outras soluções do Office
O objetivo deste passo a passo é chamar o ImportData
método de uma classe nomeada AddInUtilities
em seu suplemento VSTO a partir do código VBA. Esse método grava uma cadeia de caracteres na célula A1 da planilha ativa.
Para expor a classe a outras soluções do Office, você deve tornar a AddInUtilities
classe pública e visível para COM. Você também deve expor a interface IDispatch na classe. O código no procedimento a seguir demonstra uma maneira de atender a esses requisitos. Para obter mais informações, consulte Código de chamada em suplementos VSTO de outras soluções do Office.
Para definir uma classe que você pode expor a outras soluções do Office
No menu Project , clique em Adicionar classe .
Na caixa de diálogo Adicionar Novo Item, altere o nome da nova classe para AddInUtilities e clique em Adicionar.
O arquivo AddInUtilities.cs ou AddInUtilities.vb é aberto no Editor de códigos.
Adicione as seguintes diretivas à parte superior do arquivo.
Substitua a classe
AddInUtilities
pelo código a seguir.[ComVisible(true)] public interface IAddInUtilities { void ImportData(); } [ComVisible(true)] [ClassInterface(ClassInterfaceType.None)] public class AddInUtilities : IAddInUtilities { // This method tries to write a string to cell A1 in the active worksheet. public void ImportData() { Excel.Worksheet activeWorksheet = Globals.ThisAddIn.Application.ActiveSheet as Excel.Worksheet; if (activeWorksheet != null) { Excel.Range range1 = activeWorksheet.get_Range("A1", System.Type.Missing); range1.Value2 = "This is my data"; } } }
Esse código torna a
AddInUtilities
classe visível para COM e adiciona oImportData
método à classe. Para expor a interface IDispatch, aAddInUtilities
classe também tem o ClassInterfaceAttribute atributo e implementa uma interface visível para COM.
Expor a classe a outras soluções do Office
Para expor a classe a AddInUtilities
outras soluções do Office, substitua o ThisAddIn
RequestComAddInAutomationService método na classe. Em sua substituição, retorne uma instância da AddInUtilities
classe.
Para expor a classe AddInUtilities a outras soluções do Office
No Gerenciador de Soluções, expanda Excel.
Clique com o botão direito do mouse em ThisAddIn.cs ou ThisAddIn.vb e clique em Exibir código.
Adicione o código a seguir à classe
ThisAddIn
.No menu Compilar, clique em Compilar Solução.
Verifique se a solução é compilada sem erros.
Testar o suplemento VSTO
Você pode chamar a AddInUtilities
classe de vários tipos diferentes de soluções do Office. Nesta explicação passo a passo, você usará o código VBA em uma pasta de trabalho do Excel. Para obter mais informações sobre os outros tipos de soluções do Office que você também pode usar, consulte Código de chamada em suplementos VSTO de outras soluções do Office.
Para testar o suplemento VSTO
Pressione F5 para executar o projeto.
No Excel, salve a pasta de trabalho ativa como uma pasta de trabalho habilitada para macro do Excel (*.xlsm). Salve-o em um local conveniente, como a área de trabalho.
Na Faixa de Opções, clique na guia Desenvolvedor .
Observação
Se a guia Desenvolvedor não estiver visível, você deverá mostrá-la primeiro. Para obter mais informações, consulte Como mostrar a guia do desenvolvedor na Faixa de Opções.
No grupo Código, clique em Visual Basic.
O Editor do Visual Basic é aberto.
Na janela Projeto, clique duas vezes em ThisWorkbook.
O arquivo de código para o
ThisWorkbook
objeto é aberto.Adicione o seguinte código VBA ao arquivo de código. Esse código primeiro obtém um objeto COMAddIn que representa o suplemento VSTO ExcelImportData . Em seguida, o código usa a propriedade Object do objeto COMAddIn para chamar o
ImportData
método.Sub CallVSTOMethod() Dim addIn As COMAddIn Dim automationObject As Object Set addIn = Application.COMAddIns("ExcelImportData") Set automationObject = addIn.Object automationObject.ImportData End Sub
Pressione F5.
Verifique se uma nova folha de dados importados foi adicionada à pasta de trabalho. Verifique também se a célula A1 contém a cadeia de caracteres Estes são os meus dados.
Saia do Excel.
Próximas etapas
Você pode saber mais sobre a programação de suplementos VSTO a partir destes tópicos:
Use a
ThisAddIn
classe para automatizar o aplicativo host e executar outras tarefas em projetos de suplemento VSTO. Para obter mais informações, consulte Suplementos do programa VSTO.Crie um painel de tarefas personalizado em um suplemento VSTO. Para obter mais informações, consulte Painéis de tarefas personalizados e Como adicionar um painel de tarefas personalizado a um aplicativo.
Personalize a faixa de opções em um suplemento VSTO. Para obter mais informações, consulte Visão geral da faixa de opções e Como começar a personalizar a faixa de opções.