Combinando o VBA e personalizações em nível de documento

Você pode usar o Visual Basic for Applications o código VBA () em um documento que faz parte de uma personalização em nível de documento para Microsoft Office o Word ou Excel de Microsoft Office. Você pode chamar o código do VBA no documento do assembly de personalização ou você pode configurar seu projeto para habilitar o código do VBA no documento para chamar o código no assembly de personalização. Para obter mais informações sobre a última tarefa, consulte Código de chamada personalizações em nível de documento do VBA.

Aplicável a: As informações neste tópico se aplicam a projetos de nível de documento para os seguintes aplicativos: Excel 2007 e Excel 2010; Word 2007 e Word 2010. Para obter mais informações, consulte Recursos disponíveis pelo aplicativo do Office e o tipo de projeto.

Comportamento do código do VBA uma personalização de nível de documento

Quando você abre o seu projeto no Visual Studio, o documento é aberto no modo de design. Código do VBA não é executado quando o documento estiver no modo de design, para que possa trabalhar no documento e o código sem executar o código do VBA.

Quando você executar a solução, os manipuladores de eventos no VBA e o assembly de personalização pegar a eventos que são gerados no documento e a execução de ambos os conjuntos de código. Não é possível determinar antecipadamente qual código será executado antes da outra; Você deve determinar isso por meio de testes em cada caso individual. Você pode obter resultados inesperados se os dois conjuntos de código não cuidadosamente são coordenados e testados.

Chamar o código do VBA do Assembly de personalização

Você pode chamar a macros em documentos do Word e você pode chamar funções e macros em pastas de trabalho do Excel. Para fazer isso, use um dos seguintes métodos:

Para cada método, o primeiro parâmetro identifica o nome da macro ou função que você deseja chamar e os parâmetros opcionais restantes especificarem os parâmetros para passar para a macro ou função. O primeiro parâmetro pode ter diferentes formatos do Word e Excel:

  • Para o Word, o primeiro parâmetro é uma seqüência de caracteres que pode ser qualquer combinação de modelo, o módulo e o nome da macro. Se você especificar o nome do documento, seu código pode executar somente macros em documentos relacionados ao contexto atual — não qualquer macro em qualquer documento.

  • Para o Excel, o primeiro parâmetro pode ser uma seqüência de caracteres que especifica o nome da macro, um Range que indica onde a função está, ou um identificador de registro para uma função de DLL (XLL) registrada. Se você passar uma seqüência de caracteres, a seqüência de caracteres será avaliada no contexto da planilha ativa.

O exemplo de código a seguir mostra como chamar uma macro denominada MyMacro de um projeto de nível de documento para o Excel. Este exemplo assume que MyMacro é definido em Sheet1.

Globals.Sheet1.Application.Run("MyMacro")
Globals.Sheet1.Application.Run("MyMacro", missing, missing, missing,
    missing, missing, missing, missing, missing, missing, missing,
    missing, missing, missing, missing, missing, missing, missing,
    missing, missing, missing, missing, missing, missing, missing, 
    missing, missing, missing, missing, missing, missing);
ObservaçãoObservação

Para obter informações sobre como usar o modelo global da missing variável no lugar de parâmetros opcionais no Visual C#, consulte Programação com Visual Basic vs. C# Visual em soluções do Office.

Consulte também

Tarefas

Como: Expor código VBA em um projeto de Visual Basic

Como: Expor código VBA em um projeto do Visual C#

Demonstra Passo a passo: Chamar o código do VBA em um projeto de Visual Basic

Demonstra Passo a passo: Chamar o código do VBA em um projeto do Visual C#

Conceitos

Código de chamada personalizações em nível de documento do VBA

VBA e soluções do Office em Visual Studio comparados

Assemblies na visão geral das soluções do Office

Outros recursos

Projetando e criando soluções do Office