Passo a passo: Chamando o código de um suplemento em nível de aplicativo do VBA
Essa explicação passo a passo demonstra como expor um objeto em um suplemento ao nível para outras soluções do Office, incluindo Microsoft Visual Basic é VBA Applications () e suplementos COM.
Aplicável a: As informações neste tópico se aplicam a projetos em níveis de aplicativo o Microsoft Office 2013 e o Microsoft Office 2010. Para obter mais informações, consulte Recursos disponíveis pelo aplicativo do Office e o tipo de projeto.
Embora este passo-a-passo use Excel especificamente, os conceitos demonstrado pelo passo-a-passo são aplicáveis a qualquer modelo de projeto do suplemento fornecido pelo Visual Studio.
Essa explicação passo a passo mostra as seguintes tarefas:
Definindo uma classe que pode ser exposta para outras soluções do Office.
A classe expõe a outras soluções do Office.
Chamando um método da classe do código de VBA.
Observação |
---|
Seu computador pode mostrar nomes ou locais diferentes para alguns dos elementos da 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, consulte Configurações de Visual Studio. |
Pré-requisitos
Para completar este passo-a-passo, são necessários os seguintes componentes:
-
Uma edição do Visual Studio 2012 que inclui o Microsoft Office Developer Tools. Para obter mais informações, consulte [Configurando um computador para desenvolver soluções do Office](bb398242\(v=vs.110\).md).
- Excel 2013 ou Excel 2010.
Para uma versão de vídeo de este tópico, consulte Como: exibição Chamando o código em um suplemento ao Nível de VBA.
Criando o projeto do suplemento
A primeira etapa é criar um projeto do suplemento para o excel.
para criar um novo projeto
Crie um projeto do suplemento do excel com o nome ExcelImportData, usando o modelo de projeto do suplemento do excel.Para obter mais informações, consulte Como: criar projetos do Office em Visual Studio.
Visual Studio abre o arquivo de código de ThisAddIn.cs ou de ThisAddIn.vb e adiciona o projeto de ExcelImportData a Gerenciador de Soluções.
Definindo uma classe que você pode expor a outro Office soluções
O propósito de este explicação passo a passo é chamar o método em ImportData de uma classe denominada AddInUtilities no suplemento do código de VBA.Este método grava uma cadeia de caracteres na célula A1 a planilha ativo.
Para expor a classe de AddInUtilities a outras soluções do Office, você deve fazer o público da classe e visível COM.Você também deve expor a interface de IDispatch na classe.O código no procedimento a seguir demonstra uma maneira para atender aos requisitos.Para obter mais informações, consulte Chamar código nos suplementos de nível de aplicativo de outras soluções do Office.
Para definir uma classe que você pode expor a outro Office soluções
No menu Project clique em Add Class.
Em a caixa de diálogo de Adicionar novo item , altere o nome da nova classe a AddInUtilities, e clique Adicionar.
O arquivo de AddInUtilities.cs ou de AddInUtilities.vb abre na editor de códigos.
Adicione as instruções a seguir à parte superior do arquivo.
Imports System.Data Imports System.Runtime.InteropServices Imports Excel = Microsoft.Office.Interop.Excel
using System.Data; using System.Runtime.InteropServices; using Excel = Microsoft.Office.Interop.Excel;
Substitua a classe de AddInUtilities com o código a seguir.
<ComVisible(True)> _ Public Interface IAddInUtilities Sub ImportData() End Interface <ComVisible(True)> _ <ClassInterface(ClassInterfaceType.None)> _ Public Class AddInUtilities Implements IAddInUtilities ' This method tries to write a string to cell A1 in the active worksheet. Public Sub ImportData() Implements IAddInUtilities.ImportData Dim activeWorksheet As Excel.Worksheet = Globals.ThisAddIn.Application.ActiveSheet If activeWorksheet IsNot Nothing Then Dim range1 As Excel.Range = activeWorksheet.Range("A1") range1.Value2 = "This is my data" End If End Sub End Class
[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"; } } }
Este código faz a classe de AddInUtilities visível COM a, e o método de ImportData à classe.Para expor a interface de IDispatch , a classe de AddInUtilities também possui o atributo de ClassInterfaceAttribute , e implementa uma interface que está visível COM a.
A classe expõe a outras soluções do Office
Para expor a classe de AddInUtilities a outras soluções do Office, substituir o método de RequestComAddInAutomationService na classe de ThisAddIn .Em sua substituição, retornar uma instância da classe de AddInUtilities .
Para expor o AddInUtilities classe para outro Office soluções
Em Gerenciador de Soluções, expanda Excel.
Clique com o botão direito do mouse ThisAddIn.cs ou ThisAddIn.vb, clique em Exibir Código.
Adicione o seguinte código à classe ThisAddIn:
Private utilities As AddInUtilities Protected Overrides Function RequestComAddInAutomationService() As Object If utilities Is Nothing Then utilities = New AddInUtilities() End If Return utilities End Function
private AddInUtilities utilities; protected override object RequestComAddInAutomationService() { if (utilities == null) utilities = new AddInUtilities(); return utilities; }
No menu Build, clique em Build Solution.
Verifique se a solução compile sem erros.
testando o suplemento
Você pode chamar em AddInUtilities a classe de vários tipos diferentes de soluções do Office.Em essa explicação passo a passo, você usará o código de VBA em uma pasta de trabalho do Excel.Para obter mais informações sobre outros tipos de soluções do Office você pode também usar, consulte Chamar código nos suplementos de nível de aplicativo de outras soluções do Office.
Para testar o suplemento
Pressione F5 para executar o seu projeto.
O excel, salve a pasta de trabalho como ativa uma pasta de trabalho habilitado para macro Excel (*.xlsm).Salve o em um local conveniente, como a área de trabalho.
Em fita, clique na guia de Desenvolvedor .
Observação Se a guia de Desenvolvedor não estiver visível, primeiro você deve mostrar.Para obter mais informações, consulte Como: Mostrar guia desenvolvedor na faixa de opções.
Em o grupo de Código , clique Visual Basic.
O editor do Visual Basic abre.
Em a janela de Projeto , clique duas vezes ThisWorkbook.
O arquivo de código para o objeto de ThisWorkbook abre.
Adicione o seguinte código de VBA para o arquivo de código.Esse código obtém primeiro um objeto de COMAddIn que representa o suplemento a ExcelImportData .Em seguida, o código usa a propriedade de Object do objeto de COMAddIn para chamar o método de ImportData .
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 que uma nova folha de Importados dados seja adicionada à pasta de trabalho.Também verifique que a célula A1 contém a cadeia de caracteres Este é my dados.
Sair do excel.
Próximas etapas
Você pode aprender mais sobre programação de suplementos de esses tópicos:
Use a classe de ThisAddIn para automatizar o aplicativo host e realizar outras tarefas em projetos do suplemento.Para obter mais informações, consulte Os suplementos de nível de aplicativo de programação..
Crie um painel de tarefa personalizada em um suplemento.Para obter mais informações, consulte Painéis de tarefas personalizados e Como: adiciona um painel de tarefas personalizado a um aplicativo.
personalizar a fita em um suplemento.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..
Consulte também
Tarefas
Como: criar projetos do Office em Visual Studio
Conceitos
Chamar código nos suplementos de nível de aplicativo de outras soluções do Office
Arquitetura dos suplementos de nível de aplicativo
Personalizando os recursos de interface do usuário usando Interfaces de extensibilidade