Compartir a través de


Escribir código en soluciones de Office

Existen algunos aspectos a la hora de escribir código en proyectos de Office que son diferentes con respecto a otros tipos de proyectos en Visual Studio.Muchas de estas diferencias están relacionadas con la manera en que se exponen los modelos de objeto de Office en el código administrado.Otras diferencias están relacionadas con el diseño de los proyectos de Office.

Se aplica a: La información de este tema se aplica a los proyectos de nivel de documento y los proyectos de nivel de aplicación para Office 2013 y Office 2010. Vea Características disponibles por aplicación y tipo de proyecto de Office.

Código administrado y programación de Office

La tecnología clave que permite la creación de una solución de Microsoft Office integrada es la automatización, que forma parte de la tecnología del Modelo de objetos componentes (COM).La automatización permite utilizar código para crear y controlar los objetos de software expuestos por cualquier aplicación, archivo DLL o control ActiveX compatible con las interfaces de programación adecuadas.

Bb608596.collapse_all(es-es,VS.110).gifDescripción de los ensamblados de interoperabilidad primarios

Las aplicaciones de Microsoft Office exponen una gran parte de su funcionalidad a la automatización.Sin embargo, no se puede usar directamente el código administrado (como Visual Basic o C#) para automatizar las aplicaciones de Office.Para automatizar las aplicaciones de Office mediante código administrado, se deben usar los ensamblados de interoperabilidad primarios (PIA) de Office.Los ensamblados de interoperabilidad primarios permiten la interacción del código administrado con el modelo de objetos basado en COM de las aplicaciones de Office.

Cada aplicación de Microsoft Office tiene un PIA.Cuando se crea un proyecto de Office en Visual Studio, se agrega automáticamente al proyecto una referencia al PIA correspondiente.Para automatizar las características de otras aplicaciones de Office desde el proyecto, debe agregar manualmente una referencia al PIA apropiado.Para obtener más información, vea Cómo: Apuntar a las aplicaciones de Office mediante los ensamblados de interoperabilidad primarios.

Bb608596.collapse_all(es-es,VS.110).gifUsar ensamblados de interoperabilidad primarios en tiempo de diseño y en tiempo de ejecución

Los PIA de Office deben estar instalados y registrados en la memoria caché global de ensamblados en el equipo de desarrollo para poder realizar la mayoría de las tareas de desarrollo.Para obtener más información, vea Configurar un equipo para desarrollar soluciones de Office.

Los PIA de Office no se requieren en equipos de usuarios finales para ejecutar soluciones de Office destinadas .NET Framework 4 o .NET Framework 4.5.Para obtener más información, vea Diseñar y crear soluciones de Office.

Bb608596.collapse_all(es-es,VS.110).gifTipos en los ensamblados de interoperabilidad primarios

Los PIA de Office contienen una combinación de tipos que expone el modelo de objetos de las aplicaciones de Office y tipos de infraestructura adicionales que no están diseñados para usarlos directamente en el código.Para obtener información general sobre los tipos de los PIA de Office, vea Overview of Classes and Interfaces in the Office Primary Interop Assemblies.

Puesto que los tipos de los PIA de Office se corresponden con los tipos de los modelos de objetos basados en COM, la manera de usar estos tipos a menudo difiere de cómo se usan otros tipos administrados.Por ejemplo, la manera de llamar a los métodos que tienen parámetros opcionales en un ensamblado de interoperabilidad primario de Office depende del lenguaje de programación que se use en el proyecto.Para obtener más información, vea los temas siguientes:

Modelo de programación de proyectos de Office

Todos los proyectos de Office incluyen una o más clases generadas que proporcionan el punto de entrada para el código.Estas clases también proporcionan acceso al modelo de objetos de la aplicación host y a características tales como paneles de acción y paneles de tareas personalizados.

Bb608596.collapse_all(es-es,VS.110).gifDescripción de las clases generadas

En proyectos de nivel de documento para Excel y Word, la clase generada se parece a un objeto de nivel superior en el modelo de objetos de la aplicación.Por ejemplo, la clase ThisDocument generada en un proyecto de documento de Word proporciona los mismos miembros que la clase Microsoft.Office.Interop.Word.Document del modelo de objetos de Word.Para obtener más información sobre las clases generadas en proyectos de nivel de documento, vea Programar personalizaciones de nivel de documento.

Los proyectos de nivel de aplicación proporcionan una clase generada denominada ThisAddIn.Esta clase no se parece a ninguna clase del modelo de objetos de la aplicación host.En su lugar, esta clase representa el complemento en sí y proporciona miembros que se pueden usar para obtener acceso al modelo de objetos de la aplicación host y a otras características que están disponibles para los complementos.Para obtener más información, vea Programar complementos de nivel de aplicación.

Todas las clases generadas de los proyectos de Office incluyen controladores de eventos Shutdown y Startup.Cuando se empieza a escribir código, normalmente se agrega código a estos controladores de eventos.Para inicializar un complemento, puede agregar código al controlador del evento Startup.Para limpiar los recursos utilizados por un complemento, puede agregar código al controlador del evento Shutdown.Para obtener más información, vea Eventos de los proyectos de Office.

Bb608596.collapse_all(es-es,VS.110).gifObtener acceso a las clases generadas en tiempo de ejecución

Cuando se carga una solución de Office, Runtime de Microsoft Visual Studio Tools para Office crea instancias de cada una de las clases generadas en su proyecto.Puede tener acceso a estos objetos desde cualquier código de su proyecto mediante la claseGlobals.Por ejemplo, puede usar la clase Globals para llamar al código de la clase ThisAddIn desde un controlador de eventos de un botón de cinta de opciones en un complemento de nivel de aplicación.

Para obtener más información, vea Acceso global a objetos en los proyectos de Office.

Bb608596.collapse_all(es-es,VS.110).gifEspacio de nombres Consideraciones en soluciones de Office

No se puede cambiar el espacio de nombres predeterminado (o el espacio de nombres raíz en Visual Basic) de un proyecto de Office después de crear el proyecto.El espacio de nombres predeterminado siempre coincidirá con el nombre de proyecto que especificó al crear el proyecto.Si cambia el nombre del proyecto, el espacio de nombres predeterminado no cambiará.Para obtener más información sobre el espacio de nombres predeterminado en los proyectos, vea Página de aplicación, Diseñador de proyectos (C#) y Aplicación (Página, Diseñador de proyectos) (Visual Basic).

Bb608596.collapse_all(es-es,VS.110).gifCambiar el espacio de nombres de las clases de elemento host en los proyectos de C#

Las clases de elemento host (por ejemplo, las clases ThisAddIn, ThisWorkbook o ThisDocument) tienen sus propios espacios de nombres en los proyectos de Office en Visual C#.De forma predeterminada, el espacio de nombres de los elementos host del proyecto coincide con el nombre de proyecto que especificó al crear el proyecto.

Para cambiar el espacio de nombres de los elementos host en un proyecto de Visual C# Office, utilice la propiedad Espacio de nombres para el elemento host.Para obtener más información, vea Propiedades de los proyectos de Office.

Lenguajes de programación admitidos en proyectos de Office

Las plantillas de proyecto de Visual Studio para Office solo admiten los lenguajes de programación Visual C# y Visual Basic.Por consiguiente, estas plantillas de proyecto solo están disponibles en los nodos Visual Basic y Visual C# del cuadro de diálogo Nuevo proyecto de Visual Studio.Para obtener más información, vea Cómo: Crear proyectos de Office en Visual Studio.

Opción de lenguaje y programación de Office

Microsoft Office y Visual Basic para Aplicaciones (VBA) se han desarrollado para funcionar en conjunto con el fin de optimizar el flujo de trabajo de personalización de la aplicación.Visual Basic ha heredado algunos de esos desarrollo.Por ejemplo, Visual Basic admite parámetros opcionales, lo que significa que puede escribir menos código al llamar a algunos métodos en los ensamblados de interoperabilidad primarios de Microsoft Office que al utilizar Visual C#.

Programación con Visual Basic VS. Visual c# en soluciones de Office

Puede crear soluciones de Office con Visual Basic o con Visual C#.Como los modelos de objetos de Microsoft Office se diseñaron para usarlos con Microsoft Visual Basic para Aplicaciones (VBA), los desarrolladores de Visual Basic pueden trabajar cómodamente con los objetos expuestos por las aplicaciones de Microsoft Office.En Visual Studio 2012, los desarrolladores de Visual C# pueden usar prácticamente las mismas características que los desarrolladores de Visual Basic, pero hay algunos casos en los que deben escribir código adicional para usar los modelos de objetos de Office.Hay también algunas diferencias entre las características de programación básicas en el desarrollo de Office y el código administrado cuando se escribe en Visual Basic y C#.

Las diferencias principales entre Visual Basic y Visual c#

En la siguiente tabla se muestran las diferencias principales entre Visual Basic y Visual C# para el desarrollo de Office.

Característica

Descripción

Compatibilidad con Visual Basic

Compatibilidad con Visual C#

Parámetros opcionales

Muchos métodos de Microsoft Office tienen parámetros que no se requieren al llamar al método.Si no se pasa ningún valor para el parámetro, se utiliza un valor predeterminado.

Visual Basic admite parámetros opcionales.

Visual C# admite parámetros opcionales en la mayoría de los casos.Para obtener más información, vea Parámetros opcionales en las soluciones de Office.

Pasar parámetros por referencia

Los parámetros opcionales de la mayoría de los ensamblados de interoperabilidad primarios de Microsoft Office se pueden pasar por valor.Sin embargo, en algunos ensamblados de interoperabilidad primarios, los parámetros opcionales que aceptan tipos de referencia se deben pasar por referencia.

Para obtener más información sobre los parámetros de tipo de valor y de tipo de referencia, vea Pasar argumentos por valor y por referencia (Visual Basic) (para Visual Basic) y Pasar parámetros (Guía de programación de C#).

No se necesita trabajo adicional para pasar parámetros por referencia.El compilador de Visual Basic pasa automáticamente los parámetros por referencia cuando resulta necesario.

En la mayoría de los casos, el compilador de Visual C# pasa automáticamente los parámetros por referencia cuando resulta necesario.Para obtener más información, vea Parámetros opcionales en las soluciones de Office.

Propiedades parametrizadas

Algunas propiedades aceptan parámetros y actúan como funciones de sólo lectura.

Visual Basic admite propiedades que aceptan parámetros.

Visual C# admite propiedades que aceptan parámetros.

Enlace en tiempo de ejecución

El enlace en tiempo de ejecución implica la determinación de las propiedades de los objetos en tiempo de ejecución, en lugar de convertir variables en el tipo de objeto en tiempo de diseño.

Visual Basic realiza el enlace en tiempo de ejecución cuando Option Strict está desactivado.Cuando Option Strict está activada, se deben convertir los objetos explícitamente y usar los tipos del espacio de nombres System.Reflection para tener acceso a los miembros enlazados en tiempo de ejecución.Para obtener más información, vea Enlace en tiempo de ejecución en las soluciones de Office.

Visual C# realiza el enlace en tiempo de ejecución en los proyectos destinados a .NET Framework 4.Para obtener más información, vea Enlace en tiempo de ejecución en las soluciones de Office.

Diferencias fundamentales entre el desarrollo de Office y el código administrado

En la tabla siguiente se muestran las diferencias principales entre el desarrollo de Office y el código administrado cuando se escribe en Visual Basic o Visual C#.

Característica

Descripción

Compatibilidad con Visual Basic y Visual C#

Índices de matriz

El límite de matriz inferior de colecciones en las aplicaciones de Microsoft Office empieza por 1.Visual Basic y Visual C# usan matrices basadas en 0.Para obtener más información, vea Matrices (Guía de programación de C#) y Matrices en Visual Basic.

Para obtener acceso al primer elemento de una colección en el modelo de objetos de una aplicación de Microsoft Office, utilice el índice 1 en lugar de 0.

Vea también

Tareas

Cómo: Apuntar a las aplicaciones de Office mediante los ensamblados de interoperabilidad primarios

Cómo: Crear controladores de eventos en proyectos de Office

Conceptos

Parámetros opcionales en las soluciones de Office

Acceso global a objetos en los proyectos de Office

Eventos de los proyectos de Office

Enlace en tiempo de ejecución en las soluciones de Office

Desarrollo en colaboración de las soluciones de Office