Demonstra Passo a passo: Chamar o código do VBA em um suplemento em nível de aplicativo
Esta explicação passo a passo demonstra como expor um objeto em um suplemento do nível do aplicativo para outras soluções de Microsoft Office, incluindo o Visual Basic for Applications (VBA) e suplementos de COM.
Aplicável a: As informações neste tópico se aplicam a projetos de nível de aplicativo para Microsoft Office 2010 e o sistema 2007 do Microsoft Office. Para obter mais informações, consulte Recursos disponíveis pelo aplicativo do Office e o tipo de projeto.
Embora este passo a passo usa o Excel especificamente, os conceitos demonstrados pela explicação são aplicáveis a qualquer modelo de projeto de suplemento fornecido pelo Visual Studio.
This walkthrough illustrates the following tasks:
A definição de uma classe que pode ser exposta a outras soluções do Office.
Expondo a classe de outras soluções do Office.
Chamar um método da classe do código do 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 do Visual Studio. |
Pré-requisitos
You need the following components to complete this walkthrough:
-
Uma edição do Visual Studio 2010 que inclua as ferramentas de desenvolvedor do Microsoft Office. Para obter mais informações, consulte [Configurando um computador para desenvolver soluções do Office](bb398242\(v=vs.100\).md).
- Excel 2007 ou Excel 2010.
Para obter uma versão de vídeo deste tópico, consulte vídeo How to: Chamar o código do VBA em um suplemento em nível de aplicativo.
Criando o projeto de suplemento
A primeira etapa é criar um projeto de suplemento para Excel.
Para criar um novo projeto.
Crie um projeto de suplemento do Excel com o nome ExcelImportData, usando o modelo de projeto de suplemento do Excel. For more information, see Como: Criar projetos do Office em Visual Studio.
Visual StudioAbre a ThisAddIn.cs ou ThisAddIn. vb arquivo de código e adiciona a ExcelImportData de projeto para Solution Explorer.
A definição de uma classe que você pode expor a outras soluções do Office
A finalidade desta explicação passo a passo é chamar o ImportData o método de uma classe chamada AddInUtilities no seu suplemento de código do VBA. Esse método grava uma seqüência de caracteres na célula A1 da planilha ativa.
Para expor o AddInUtilities classe a outras soluções do Office, você deve fazer a classe pública e visível para com. Você também deve expor o IDispatch interface na classe. O código no procedimento a seguir demonstra uma maneira de atender a esses requisitos. For more information, see Código de chamada no nível do aplicativo Add-ins de outras soluções do Office.
Para definir uma classe que você pode expor a outras soluções do Office
On the Project menu, click Add Class.
No Add New Item caixa de diálogo, altere o nome da nova classe para AddInUtilitiese clique em Add.
O AddInUtilities.cs ou AddInUtilities.vb arquivo é aberto no Editor de código.
Adicione as seguintes instruções para a 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;
Substituir o AddInUtilities classe 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 o AddInUtilities classe visível para COM e adiciona a ImportData método para a classe. Para expor o IDispatch interface, o AddInUtilities classe também tem a ClassInterfaceAttribute atributo e ele implementa uma interface que está visível para com.
Expondo a classe de outras soluções do Office
Para expor o AddInUtilities da classe a outras soluções do Office, substituir o RequestComAddInAutomationService método na ThisAddIn classe. Em sua substituição, retornar uma instância de AddInUtilities classe.
Para expor a classe AddInUtilities para outras soluções do Office
Em Solution Explorer, expanda Excel.
Com o botão direito ThisAddIn.cs ou ThisAddIn. vbe em seguida, clique em Exibir código.
Add the following code to the ThisAddIn class.
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; }
Sobre o Build menu, clique em Build Solution.
Verifique se que a solução foi compilado sem erros.
Testando o suplemento
Você pode chamar o AddInUtilities classe a partir de vários tipos diferentes de soluções do Office. Esta explicação passo a passo, você usará o código do VBA em uma pasta de trabalho do Excel. Para obter mais informações sobre outros tipos de soluções do Office, você também pode usar, consulte Código de chamada no nível do aplicativo Add-ins de outras soluções do Office.
Para testar seu suplemento
Pressione F5 para executar seu projeto.
No Excel, salve a pasta de trabalho ativa como uma pasta de trabalho do Excel Macro-Enabled (*.xlsm). Salve-o em um local conveniente, como, por exemplo, a área de trabalho.
Na faixa de opções, clique no Developer guia.
Observação Se o Developer guia não estiver visível, você deve primeiro mostrá-lo. For more information, see Como: Mostrar guia desenvolvedor na faixa de opções.
No código de grupo, clique em Visual Basic.
O Editor de Visual Basic é aberto.
No projeto janela, clique duas vezes em ThisWorkbook.
O arquivo de código para o ThisWorkbook objeto será aberta.
Adicione o seguinte código do VBA para o arquivo de código. Primeiro este código obtém uma COMAddIn o objeto que representa o ExcelImportData add-in. Em seguida, o código usa a Object propriedade da COMAddIn o objeto 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
Press F5.
Verificar se um novo Os dados importados folha foi adicionada à pasta de trabalho. Verifique também se a célula A1 contém a seqüência Meus dados.
Saia do Excel.
Próximas etapas
Você pode aprender mais sobre a programação de suplementos com estes tópicos:
Use o ThisAddIn classe para automatizar a aplicação de host e executar outras tarefas no suplemento projetos. For more information, see Os suplementos de nível de aplicativo de programação..
Crie um painel de tarefas personalizado em um suplemento. For more information, see Visão geral sobre painéis de tarefas personalizado and Como: Adicionar um painel de tarefas personalizado a um aplicativo.
Personalize a faixa de opções em um suplemento. For more information, see Visão geral da faixa de opções and Como: Começar a personalizar a faixa de opções..
Consulte também
Tarefas
Como: Criar projetos do Office em Visual Studio
Conceitos
Código de chamada no nível do aplicativo Add-ins de outras soluções do Office
Personalizando os recursos de interface do usuário usando Interfaces de extensibilidade
Arquitetura dos suplementos de nível de aplicativo