SlideShare una empresa de Scribd logo
1 de 47
Developing for Office 2007 Jonathan Cisneros (Southworks SRL) Ezequiel Jadib (Southworks SRL)
Agenda Introducción a Visual Studio Tools for Office (VSTO) Introducción a OpenXML VSTO para Outlook VSTO para Excel Extender Office Ribbon Demos Preguntas y Respuestas
Introducción a VSTO
Office como Plataforma de Desarrollo
Visual Studio Tools for the Microsoft Office System Templates de proyectos para Visual Studio Permite crear y extender Office Business Applications (OBA) Permite aprovechar la UI de Office Colaboración e integración del flujo de negocio
Evolución V 3.0 Soporte para Microsoft SharePoint Office 2007 formato archivos, características especificas, UI Add-ins de nivel de aplicación para mas aplicaciones Programación del lado del servidor Integración total con Visual Studio 2008 2005 SE Add-ins para las aplicaciones Office mas populares  Soporte para elementos de la interfaz de usuario de Office 2007 (Custom Taskpane, Ribbon, Outlook formregions) Soporte para correr personalizaciones de documentos de Office 2003 en Office 2007 2007 2007 2003 2003 2005 Personalizar Panel de Acciones del documento Controles de host en la superficie del documento Almacenar datos en memoria caché en el documento Procesamiento de datos del lado del servidor Add-ins de nivel de aplicación para Outlook
Evolución (cont.) ,[object Object]
Nuevos designers,
Ext. funcionales
Infrastructura
Office 11 add-ins,
Infrastructura
Outlook add-ins
VSTA en InfoPath
Extensiones funcionales
Infrastructura
A nivel de documento,[object Object]
Personalizaciones de nivel de documento Constan de un assembly asociado a un único documento, libro o plantilla de Microsoft Office Word o Microsoft Office Excel: El assembly se carga cuando se abre el documento asociado Las características de las personalizaciones que cree sólo estarán disponibles cuando se abra el documento asociado
Add-ins de nivel de aplicacion Constan de un assembly asociado a una aplicación de Microsoft Office Normalmente, el complemento se ejecuta cuando se inicia la aplicación asociada Las características de los complementos que cree están disponibles para la propia aplicación, independientemente de los documentos que se abran.
Tipos de proyectos disponibles para las diferentes aplicaciones de Microsoft Office
Ensamblados de interoperabilidad primarios de Office (PIA) Para usar las características de una aplicación de Microsoft Office en un proyecto de Visual Studio Tools para Office Permiten que el código administrado interactúe con el modelo de objetos basado en COM de una aplicación de Office. Ensamblados de interoperabilidad primarios de 2007 Microsoft Office System:
Introducción a Open XML
Introducción a Open XML Formato de archivo para representar hojas de cálculo, gráficos, presentaciones y documentos Contiene archivos basados en XML comprimidos en un paquete ZIP Estándar internacional: Office Open XML (ECMA-376)
Introducción a Open XML (cont.) API: Open XML Format SDK 2.0 ,[object Object],[object Object]
Vsto Para Outlook Introducción al modelo de objetos de Microsoft Office Outlook
Introducción VSTO proporciona templates de proyectos para crear add-ins de nivel de aplicación para Outlook Ejemplos de add-ins: Automatizar Outlook Extender funcionalidad de Outlook Personalizar la interfaz de usuario de Outlook El desarrollo de add-ins para Outlook involucra la interacción con los objetos proporcionados por el modelo de objetos de Outlook
Modelo de objetos de Outlook Proporciona clases que representan elementos de la interfaz de usuario Contenido en dos assemblies: PIA: Microsoft.Office.Interop.Outlook.dll VSTO: Microsoft.Office.Tools.Outlook.dll Clases mas importantes: Application Explorer Inspector MAPIFolder MailItem AppointmentItem TaskItem ContactItem
La clase ThisAddIn El archivo de código ThisAddIn.vb o ThisAddIn.cs se crea automáticamente cuando se crea un nuevo proyecto La clase ThisAddIn hereda de la clase OutlookAddIn El código que esta fuera de la clase ThisAddIn puede obtener acceso al objeto ThisAddin mediante la propiedad estática Globals.ThisAddIn
La clase Application La clase de nivel superior del modelo de objetos de Outlook Representa la aplicación de Outlook Para obtener una instancia de la clase Application, utilice la propiedad Application de la clase ThisAddin. Miembros mas importantes: Método CreateItem: crear un nuevo elemento, como un mensaje de correo, una tarea o una cita Propiedad Explorers Propiedad Inspectors
La clase MailItem Representa un mensaje de correo electrónico. Los objetos MailItem suelen encontrarse en carpetas, como por ejemplo Bandeja de Entrada, Elementos Enviados y Bandeja de Salida. Expone propiedades y métodos que se pueden utilizar para crear y enviar mensajes de correo electrónico. private void CreateMailItem() { Outlook.MailItemmailItem = (Outlook.MailItem) this.Application.CreateItem(Outlook.OlItemType.olMailItem); mailItem.Subject = “Este es el subject"; mailItem.To = "someone@example.com"; mailItem.Body = “Este es el mensaje"; mailItem.Importance = Outlook.OlImportance.olImportanceLow; mailItem.Display(false); //if true  muestraventana de email 	//para enviarlo: ((Outlook._MailItem)mailItem).Send(); }
La clase ContactItem Representa un contacto en la carpeta Contactos. Contienen información de contacto de diversa índole para las personas a las que representan, como por ejemplo, domicilio y direcciones de correo electrónico. private void AddContact() { Outlook.ContactItemnewContact = (Outlook.ContactItem) this.Application.CreateItem(Outlook.OlItemType.olContactItem); newContact.FirstName = "Jo"; newContact.LastName = "Berry";         newContact.Email1Address = "somebody@example.com"; newContact.CustomerID = "123456"; newContact.PrimaryTelephoneNumber = "(425)555-0111"; newContact.MailingAddressStreet = "123 Main St."; newContact.MailingAddressCity = "Redmond"; newContact.MailingAddressState = "WA"; newContact.Save(); newContact.Display(true); }
Demo Outlook
VSTO para Excel Introducción al modelo de objetos de Microsoft Office Excel
Introducción VSTO provee templatesde proyectos para crear personalizaciones a nivel de documento y add-ins a nivel de applicación para Excel. Tipos de templates: Excel Add-in Excel Template Excel Workbook
Modelo de Objectos para Excel Clases COM más importantes: Microsoft.Office.Interop.Excel.Application Microsoft.Office.Interop.Excel.Workbook Microsoft.Office.Interop.Excel.Worksheet Microsoft.Office.Interop.Excel.Range Microsoft.Office.Tools.Excel.NamedRange El modelo de objectos sigue la interfaz de usuario: Application: representa la aplicación entera (Excel) Workbook: contiene una colección de objetos Worksheet (hojas).  Range: representa las celdas y permite trabajar con celdas individuales o un grupo de celdas.
Acceso a Objectos en un Proyecto Excel Proyectos a nivel de aplicación: Visual Studio crea un archivo de código ThisAddIn.cs o ThisAddIn.vb Objeto Application: This.Application o Me.Application Proyectos a nivel de documento: Creando un nuevo proyecto Workbook o Template.  Archivos generados: Para acceder a las clases desde fuera de los archivos generados usar la clase Globals.
Objeto Range El más usado en aplicaciones Excel Cualquier region dentro de Excel es expresada como un objeto Range Un objeto Range puede representar celdas, filas, columnas, una selección de celdas que contiene uno o más bloques de celdas, o incluso un grupo de celdas en múltiples hojas. Para una personalización a nivel de documento, existen dos controles que contienen range: NamedRange XmlMappedRange
Add-ins a Nivel de Aplicación Un add-in a nivel de aplicación consiste de un assembly cargado por Excel. Usualmente extiende Excel automatizándolo o personalización su interfaz de usuario. Personalización de la UI: Crear un taskpane personalizado. Añadir tabs que aparecerán en la Ribbon. Añadir grupos personalizados a un tab existente en la Ribbon.
Task Panes y Actions Panes Actions Pane Más robusto y fácil de programar que la alternativa de la tecnologia de “SmartDocument” de Office. Custom Task Pane La misma idea general que los Actions Pane, sólo en nivel de add-in de aplicación, no para un documento individual. VSTO simplifica y optimiza el proceso de diseño de la UI de un taskpane con los visual designers.
Personalización de los Paneles
Demo Excel
Extendiendo LA Office Ribbon
Office Ribbon Nuevo Look & Feel para la Interfaz de Usuario Introduce un nuevo modelo de extensibilidad llamado RibbonX Permite: Personalizar tabs Agregar a tabs existentes Remover tabs, grupos y controles Agregar menus Group Tab Control Ribbon
Extendiendo la Office Ribbon Soporte en Visual Studio VSTO Office 2007: Diseñador Visual Opción para “Exportar Ribbon a XML” Property Grid Ribbon Control  Toolbox Design Surface
Extendiendo la Office Ribbon La estructura de la Ribbon XML requiere una jerarquia especifica Ejemplo de Ribbon XML <customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" onLoad="OnLoad">   <ribbon>     <tabs>       <tab idMso="TabAddIns">         <group id="MyGroup"                label="My Group">           <toggleButton id="toggleButton1"                          size="large"                         label="My Button"                         screentip="My Button Screentip"                         onAction="OnToggleButton1"                          imageMso="AccessFormModalDialog" />         </group>       </tab>     </tabs>   </ribbon> </customUI>
Demo Ribbon

Más contenido relacionado

La actualidad más candente

Visual basic-2008
Visual basic-2008Visual basic-2008
Visual basic-2008ramcoll
 
Fundamentos de Visual Basic
Fundamentos de Visual BasicFundamentos de Visual Basic
Fundamentos de Visual BasicSamirCabrera5
 
Actividades calc
Actividades calcActividades calc
Actividades calcAna Duran
 
Pasos para crear un proyecto de visual studio 2008
Pasos para crear un proyecto de visual studio 2008Pasos para crear un proyecto de visual studio 2008
Pasos para crear un proyecto de visual studio 2008vnslgars
 
Visual basic y java
Visual basic y javaVisual basic y java
Visual basic y javaKareliaRivas
 
Introduccion al modelado_visual_rup
Introduccion al modelado_visual_rupIntroduccion al modelado_visual_rup
Introduccion al modelado_visual_rupljds
 
Computacion Kathy
Computacion Kathy Computacion Kathy
Computacion Kathy Eve Latorre
 
Microsoft 7,10 y 13
Microsoft 7,10 y 13Microsoft 7,10 y 13
Microsoft 7,10 y 13Stfy Doly
 
dispositivos de entrada y salida
dispositivos de entrada y salidadispositivos de entrada y salida
dispositivos de entrada y salidaJessik Maribel
 

La actualidad más candente (17)

Delphi para PHP “en acción”
Delphi para PHP “en acción”Delphi para PHP “en acción”
Delphi para PHP “en acción”
 
Visual basic-2008
Visual basic-2008Visual basic-2008
Visual basic-2008
 
Unidad I. Programación
Unidad I. ProgramaciónUnidad I. Programación
Unidad I. Programación
 
visual.basic
visual.basicvisual.basic
visual.basic
 
Taller de informatica
Taller de informaticaTaller de informatica
Taller de informatica
 
Fundamentos de Visual Basic
Fundamentos de Visual BasicFundamentos de Visual Basic
Fundamentos de Visual Basic
 
Actividades calc
Actividades calcActividades calc
Actividades calc
 
Visual studio 2010
Visual studio 2010Visual studio 2010
Visual studio 2010
 
Pasos para crear un proyecto de visual studio 2008
Pasos para crear un proyecto de visual studio 2008Pasos para crear un proyecto de visual studio 2008
Pasos para crear un proyecto de visual studio 2008
 
Office
Office Office
Office
 
Visual basic y java
Visual basic y javaVisual basic y java
Visual basic y java
 
Introduccion al modelado_visual_rup
Introduccion al modelado_visual_rupIntroduccion al modelado_visual_rup
Introduccion al modelado_visual_rup
 
Computacion Kathy
Computacion Kathy Computacion Kathy
Computacion Kathy
 
Microsoft 7,10 y 13
Microsoft 7,10 y 13Microsoft 7,10 y 13
Microsoft 7,10 y 13
 
dispositivos de entrada y salida
dispositivos de entrada y salidadispositivos de entrada y salida
dispositivos de entrada y salida
 
Visual basic 6.0
Visual basic 6.0Visual basic 6.0
Visual basic 6.0
 
Visual basic 6
Visual basic 6Visual basic 6
Visual basic 6
 

Destacado

Eddaflyteleport3
Eddaflyteleport3Eddaflyteleport3
Eddaflyteleport3eddafly
 
Conalep tlalnepantla 1
Conalep tlalnepantla 1Conalep tlalnepantla 1
Conalep tlalnepantla 1abbigali
 
AnaVANET: an experiment and visualization tool for vehicular networks
AnaVANET: an experiment and visualization tool for vehicular networksAnaVANET: an experiment and visualization tool for vehicular networks
AnaVANET: an experiment and visualization tool for vehicular networksManabu Tsukada
 
Trabajo practico 16
Trabajo practico 16Trabajo practico 16
Trabajo practico 16emiilsediiaz
 
Microsoft office 2010 castro
Microsoft office 2010 castroMicrosoft office 2010 castro
Microsoft office 2010 castroSoledad0702
 
XQuery y XPath for SQL Server 2012 itpros dc_chapter6
XQuery y XPath for SQL Server 2012 itpros dc_chapter6XQuery y XPath for SQL Server 2012 itpros dc_chapter6
XQuery y XPath for SQL Server 2012 itpros dc_chapter6Julián Castiblanco
 

Destacado (7)

Eddaflyteleport3
Eddaflyteleport3Eddaflyteleport3
Eddaflyteleport3
 
Conalep tlalnepantla 1
Conalep tlalnepantla 1Conalep tlalnepantla 1
Conalep tlalnepantla 1
 
AnaVANET: an experiment and visualization tool for vehicular networks
AnaVANET: an experiment and visualization tool for vehicular networksAnaVANET: an experiment and visualization tool for vehicular networks
AnaVANET: an experiment and visualization tool for vehicular networks
 
Trabajo practico 16
Trabajo practico 16Trabajo practico 16
Trabajo practico 16
 
Microsoft office 2010 castro
Microsoft office 2010 castroMicrosoft office 2010 castro
Microsoft office 2010 castro
 
XQuery y XPath for SQL Server 2012 itpros dc_chapter6
XQuery y XPath for SQL Server 2012 itpros dc_chapter6XQuery y XPath for SQL Server 2012 itpros dc_chapter6
XQuery y XPath for SQL Server 2012 itpros dc_chapter6
 
No OOXML
No OOXMLNo OOXML
No OOXML
 

Similar a Developing for Office 2007

Lanzamiento Visual Studio 2008
Lanzamiento Visual Studio 2008Lanzamiento Visual Studio 2008
Lanzamiento Visual Studio 2008Tonymx
 
2. Introduccion A Vs .Net
2.  Introduccion A Vs .Net2.  Introduccion A Vs .Net
2. Introduccion A Vs .NetDiego Armando
 
2. introduccion a vs .net
2.  introduccion a vs .net2.  introduccion a vs .net
2. introduccion a vs .netmhormech
 
Entorno de desarrollo integrado de Visual Basic .NET
Entorno de desarrollo integrado de Visual Basic .NETEntorno de desarrollo integrado de Visual Basic .NET
Entorno de desarrollo integrado de Visual Basic .NETNilian Cabral
 
Microsoft proyect
Microsoft proyectMicrosoft proyect
Microsoft proyectChinoRicky
 
Instituto universitario politecnico
Instituto universitario politecnicoInstituto universitario politecnico
Instituto universitario politecnicoKarolayFinol
 
Microsoft proyect
Microsoft proyectMicrosoft proyect
Microsoft proyectChinoRicky
 
Trabajo de fundamentos de visual basic
Trabajo de fundamentos de visual basicTrabajo de fundamentos de visual basic
Trabajo de fundamentos de visual basicMarielys Artigas
 
Visual Studio2005
Visual Studio2005Visual Studio2005
Visual Studio2005hvillarreal
 
Trabajo de programacion (visual basic)
Trabajo de programacion (visual basic)Trabajo de programacion (visual basic)
Trabajo de programacion (visual basic)Luis Enrique Arrieta
 
Generalidades de Visual Basic
Generalidades de Visual BasicGeneralidades de Visual Basic
Generalidades de Visual Basicdenis2801
 
Jose palencia - PROGRAMACIÓN
Jose palencia - PROGRAMACIÓN Jose palencia - PROGRAMACIÓN
Jose palencia - PROGRAMACIÓN MariaLeon126
 

Similar a Developing for Office 2007 (20)

Lanzamiento Visual Studio 2008
Lanzamiento Visual Studio 2008Lanzamiento Visual Studio 2008
Lanzamiento Visual Studio 2008
 
2. Introduccion A Vs .Net
2.  Introduccion A Vs .Net2.  Introduccion A Vs .Net
2. Introduccion A Vs .Net
 
2. introduccion a vs .net
2.  introduccion a vs .net2.  introduccion a vs .net
2. introduccion a vs .net
 
Entorno de desarrollo integrado de Visual Basic .NET
Entorno de desarrollo integrado de Visual Basic .NETEntorno de desarrollo integrado de Visual Basic .NET
Entorno de desarrollo integrado de Visual Basic .NET
 
Microsoft proyect
Microsoft proyectMicrosoft proyect
Microsoft proyect
 
Instituto universitario politecnico
Instituto universitario politecnicoInstituto universitario politecnico
Instituto universitario politecnico
 
Ofimatica fatima tics
Ofimatica fatima ticsOfimatica fatima tics
Ofimatica fatima tics
 
Microsoft proyect
Microsoft proyectMicrosoft proyect
Microsoft proyect
 
Trabajo gru
Trabajo gruTrabajo gru
Trabajo gru
 
Visual basic
Visual basicVisual basic
Visual basic
 
Luis jose coronel num 42
Luis jose coronel num 42Luis jose coronel num 42
Luis jose coronel num 42
 
Trabajo de fundamentos de visual basic
Trabajo de fundamentos de visual basicTrabajo de fundamentos de visual basic
Trabajo de fundamentos de visual basic
 
Visual Studio2005
Visual Studio2005Visual Studio2005
Visual Studio2005
 
Tarea informatica
Tarea informaticaTarea informatica
Tarea informatica
 
Ofimática
OfimáticaOfimática
Ofimática
 
Trabajo de programacion (visual basic)
Trabajo de programacion (visual basic)Trabajo de programacion (visual basic)
Trabajo de programacion (visual basic)
 
Generalidades de Visual Basic
Generalidades de Visual BasicGeneralidades de Visual Basic
Generalidades de Visual Basic
 
Franle ocanto
Franle ocantoFranle ocanto
Franle ocanto
 
Visual Basic
Visual BasicVisual Basic
Visual Basic
 
Jose palencia - PROGRAMACIÓN
Jose palencia - PROGRAMACIÓN Jose palencia - PROGRAMACIÓN
Jose palencia - PROGRAMACIÓN
 

Developing for Office 2007

  • 1. Developing for Office 2007 Jonathan Cisneros (Southworks SRL) Ezequiel Jadib (Southworks SRL)
  • 2. Agenda Introducción a Visual Studio Tools for Office (VSTO) Introducción a OpenXML VSTO para Outlook VSTO para Excel Extender Office Ribbon Demos Preguntas y Respuestas
  • 4. Office como Plataforma de Desarrollo
  • 5. Visual Studio Tools for the Microsoft Office System Templates de proyectos para Visual Studio Permite crear y extender Office Business Applications (OBA) Permite aprovechar la UI de Office Colaboración e integración del flujo de negocio
  • 6.
  • 7. Evolución V 3.0 Soporte para Microsoft SharePoint Office 2007 formato archivos, características especificas, UI Add-ins de nivel de aplicación para mas aplicaciones Programación del lado del servidor Integración total con Visual Studio 2008 2005 SE Add-ins para las aplicaciones Office mas populares Soporte para elementos de la interfaz de usuario de Office 2007 (Custom Taskpane, Ribbon, Outlook formregions) Soporte para correr personalizaciones de documentos de Office 2003 en Office 2007 2007 2007 2003 2003 2005 Personalizar Panel de Acciones del documento Controles de host en la superficie del documento Almacenar datos en memoria caché en el documento Procesamiento de datos del lado del servidor Add-ins de nivel de aplicación para Outlook
  • 8.
  • 18.
  • 19. Personalizaciones de nivel de documento Constan de un assembly asociado a un único documento, libro o plantilla de Microsoft Office Word o Microsoft Office Excel: El assembly se carga cuando se abre el documento asociado Las características de las personalizaciones que cree sólo estarán disponibles cuando se abra el documento asociado
  • 20. Add-ins de nivel de aplicacion Constan de un assembly asociado a una aplicación de Microsoft Office Normalmente, el complemento se ejecuta cuando se inicia la aplicación asociada Las características de los complementos que cree están disponibles para la propia aplicación, independientemente de los documentos que se abran.
  • 21. Tipos de proyectos disponibles para las diferentes aplicaciones de Microsoft Office
  • 22. Ensamblados de interoperabilidad primarios de Office (PIA) Para usar las características de una aplicación de Microsoft Office en un proyecto de Visual Studio Tools para Office Permiten que el código administrado interactúe con el modelo de objetos basado en COM de una aplicación de Office. Ensamblados de interoperabilidad primarios de 2007 Microsoft Office System:
  • 24. Introducción a Open XML Formato de archivo para representar hojas de cálculo, gráficos, presentaciones y documentos Contiene archivos basados en XML comprimidos en un paquete ZIP Estándar internacional: Office Open XML (ECMA-376)
  • 25.
  • 26. Vsto Para Outlook Introducción al modelo de objetos de Microsoft Office Outlook
  • 27. Introducción VSTO proporciona templates de proyectos para crear add-ins de nivel de aplicación para Outlook Ejemplos de add-ins: Automatizar Outlook Extender funcionalidad de Outlook Personalizar la interfaz de usuario de Outlook El desarrollo de add-ins para Outlook involucra la interacción con los objetos proporcionados por el modelo de objetos de Outlook
  • 28. Modelo de objetos de Outlook Proporciona clases que representan elementos de la interfaz de usuario Contenido en dos assemblies: PIA: Microsoft.Office.Interop.Outlook.dll VSTO: Microsoft.Office.Tools.Outlook.dll Clases mas importantes: Application Explorer Inspector MAPIFolder MailItem AppointmentItem TaskItem ContactItem
  • 29. La clase ThisAddIn El archivo de código ThisAddIn.vb o ThisAddIn.cs se crea automáticamente cuando se crea un nuevo proyecto La clase ThisAddIn hereda de la clase OutlookAddIn El código que esta fuera de la clase ThisAddIn puede obtener acceso al objeto ThisAddin mediante la propiedad estática Globals.ThisAddIn
  • 30. La clase Application La clase de nivel superior del modelo de objetos de Outlook Representa la aplicación de Outlook Para obtener una instancia de la clase Application, utilice la propiedad Application de la clase ThisAddin. Miembros mas importantes: Método CreateItem: crear un nuevo elemento, como un mensaje de correo, una tarea o una cita Propiedad Explorers Propiedad Inspectors
  • 31. La clase MailItem Representa un mensaje de correo electrónico. Los objetos MailItem suelen encontrarse en carpetas, como por ejemplo Bandeja de Entrada, Elementos Enviados y Bandeja de Salida. Expone propiedades y métodos que se pueden utilizar para crear y enviar mensajes de correo electrónico. private void CreateMailItem() { Outlook.MailItemmailItem = (Outlook.MailItem) this.Application.CreateItem(Outlook.OlItemType.olMailItem); mailItem.Subject = “Este es el subject"; mailItem.To = "someone@example.com"; mailItem.Body = “Este es el mensaje"; mailItem.Importance = Outlook.OlImportance.olImportanceLow; mailItem.Display(false); //if true  muestraventana de email //para enviarlo: ((Outlook._MailItem)mailItem).Send(); }
  • 32. La clase ContactItem Representa un contacto en la carpeta Contactos. Contienen información de contacto de diversa índole para las personas a las que representan, como por ejemplo, domicilio y direcciones de correo electrónico. private void AddContact() { Outlook.ContactItemnewContact = (Outlook.ContactItem) this.Application.CreateItem(Outlook.OlItemType.olContactItem); newContact.FirstName = "Jo"; newContact.LastName = "Berry"; newContact.Email1Address = "somebody@example.com"; newContact.CustomerID = "123456"; newContact.PrimaryTelephoneNumber = "(425)555-0111"; newContact.MailingAddressStreet = "123 Main St."; newContact.MailingAddressCity = "Redmond"; newContact.MailingAddressState = "WA"; newContact.Save(); newContact.Display(true); }
  • 34. VSTO para Excel Introducción al modelo de objetos de Microsoft Office Excel
  • 35. Introducción VSTO provee templatesde proyectos para crear personalizaciones a nivel de documento y add-ins a nivel de applicación para Excel. Tipos de templates: Excel Add-in Excel Template Excel Workbook
  • 36. Modelo de Objectos para Excel Clases COM más importantes: Microsoft.Office.Interop.Excel.Application Microsoft.Office.Interop.Excel.Workbook Microsoft.Office.Interop.Excel.Worksheet Microsoft.Office.Interop.Excel.Range Microsoft.Office.Tools.Excel.NamedRange El modelo de objectos sigue la interfaz de usuario: Application: representa la aplicación entera (Excel) Workbook: contiene una colección de objetos Worksheet (hojas). Range: representa las celdas y permite trabajar con celdas individuales o un grupo de celdas.
  • 37. Acceso a Objectos en un Proyecto Excel Proyectos a nivel de aplicación: Visual Studio crea un archivo de código ThisAddIn.cs o ThisAddIn.vb Objeto Application: This.Application o Me.Application Proyectos a nivel de documento: Creando un nuevo proyecto Workbook o Template.  Archivos generados: Para acceder a las clases desde fuera de los archivos generados usar la clase Globals.
  • 38. Objeto Range El más usado en aplicaciones Excel Cualquier region dentro de Excel es expresada como un objeto Range Un objeto Range puede representar celdas, filas, columnas, una selección de celdas que contiene uno o más bloques de celdas, o incluso un grupo de celdas en múltiples hojas. Para una personalización a nivel de documento, existen dos controles que contienen range: NamedRange XmlMappedRange
  • 39. Add-ins a Nivel de Aplicación Un add-in a nivel de aplicación consiste de un assembly cargado por Excel. Usualmente extiende Excel automatizándolo o personalización su interfaz de usuario. Personalización de la UI: Crear un taskpane personalizado. Añadir tabs que aparecerán en la Ribbon. Añadir grupos personalizados a un tab existente en la Ribbon.
  • 40. Task Panes y Actions Panes Actions Pane Más robusto y fácil de programar que la alternativa de la tecnologia de “SmartDocument” de Office. Custom Task Pane La misma idea general que los Actions Pane, sólo en nivel de add-in de aplicación, no para un documento individual. VSTO simplifica y optimiza el proceso de diseño de la UI de un taskpane con los visual designers.
  • 44. Office Ribbon Nuevo Look & Feel para la Interfaz de Usuario Introduce un nuevo modelo de extensibilidad llamado RibbonX Permite: Personalizar tabs Agregar a tabs existentes Remover tabs, grupos y controles Agregar menus Group Tab Control Ribbon
  • 45. Extendiendo la Office Ribbon Soporte en Visual Studio VSTO Office 2007: Diseñador Visual Opción para “Exportar Ribbon a XML” Property Grid Ribbon Control Toolbox Design Surface
  • 46. Extendiendo la Office Ribbon La estructura de la Ribbon XML requiere una jerarquia especifica Ejemplo de Ribbon XML <customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" onLoad="OnLoad"> <ribbon> <tabs> <tab idMso="TabAddIns"> <group id="MyGroup" label="My Group"> <toggleButton id="toggleButton1" size="large" label="My Button" screentip="My Button Screentip" onAction="OnToggleButton1" imageMso="AccessFormModalDialog" /> </group> </tab> </tabs> </ribbon> </customUI>
  • 49. Conclusiones ¿Porque VSTO? Conecta Office con .NET Proporciona una solida infrastructura Proporciona una experiencia de desarrollo sofisticada Office es una verdadera plataforma de desarrollo
  • 50. ? Jonathan Cisneros jonathan.cisneros@southworks.net http://blogs.southworks.net/jcisneros Ezequiel Jadib ezequiel.jadib@southworks.net http://blogs.southworks.net/ejadib
  • 51. Downloads Microsoft Visual Studio Tools for the Microsoft Office System (version 3.0 Runtime) Service Pack 1 (x86)http://www.microsoft.com/Downloads/details.aspx?familyid=D8EB4921-891A-4B5E-973F-0B96E6CCF376&displaylang=en 2007 Microsoft Office System Update: Redistributable Primary Interop Assemblieshttp://www.microsoft.com/downloads/details.aspx?FamilyID=59daebaa-bed4-4282-a28c-b864d8bfa513&displaylang=en Open XML Format SDK 2.0http://www.microsoft.com/downloads/details.aspx?FamilyId=C6E744E5-36E9-45F5-8D8C-331DF206E0D0&displaylang=en
  • 52. Recursos VSTO Developer Center http://msdn.microsoft.com/en-us/vsto/default.aspx VSTO Documentación en MSDN http://msdn.microsoft.com/es-es/library/d2tx7z6d.aspx VSTO “How do I Video” http://msdn.microsoft.com/en-us/office/bb496949.aspx VSTO Team Blog http://blogs.msdn.com/vsto
  • 53. Referencias Información general sobre el desarrollo de soluciones de Officehttp://msdn.microsoft.com/es-ar/library/hy7c6z9k.aspx Introducción a la programación de personalizaciones de nivel de documento para Excelhttp://msdn.microsoft.com/es-ar/library/f27xe9xb.aspx Introducción a la programación de personalizaciones de nivel de documento para Wordhttp://msdn.microsoft.com/es-ar/library/zb7cf7a4.aspx Arquitectura de las personalizaciones de nivel de documentohttp://msdn.microsoft.com/es-ar/library/zcfbd2sk.aspx Introducción a la programación de complementos de nivel de aplicaciónhttp://msdn.microsoft.com/es-ar/library/ms268878.aspx Arquitectura de los complementos de nivel de aplicaciónhttp://msdn.microsoft.com/es-ar/library/bb386298.aspx
  • 54. Referencias (cont.) Ensamblados de interoperabilidad primarios de Officehttp://msdn.microsoft.com/es-ar/library/15s06t57.aspx Características disponibles por aplicación y tipo de proyectohttp://msdn.microsoft.com/es-ar/library/aa942839.aspx Información general sobre el modelo de objetos de Outlookhttp://msdn.microsoft.com/es-ar/library/ms268893.aspx Información general sobre el modelo de objetos de Excelhttp://msdn.microsoft.com/es-ar/library/wss56bz7.aspx Welcome to the Open XML Format SDK 2.0http://msdn.microsoft.com/en-us/library/bb448854(office.14).aspx
  • 55. Gracias Jonathan Cisneros jonathan.cisneros@southworks.net http://blogs.southworks.net/jcisneros Ezequiel Jadib ezequiel.jadib@southworks.net http://blogs.southworks.net/ejadib

Notas del editor

  1. Slide Goal:Show that Office really is a developer platform that enables the OBAs shown above.Talking Points:People have been developing applications against Microsoft Office for some time but its only with the advent of the 2003 and 2007 Office System that Office emerges as a first-class developer platform. Big 3 goals are UC&C, Business Intelligence, and Enterprise Content Management (single infrastructure) Host of services are available underneath that make the most complicated apps possible.Search has changed the way people work with data The XML file formats mean that developers with XML experience can work directly against the files themselves without necessarily needing Office on the serverConsists of clients, servers, services and toolsEnables developers to bridge information gap between users and data in back-end enterprise systems SQL Server, SAP, ERP, CRM, etc.
  2. Controles HostLos controles host amplían varios objetos de la interfaz de usuario en los modelos de objetos de Excel y Word, como los objetos Microsoft.Office.Interop.Excel.Range y Microsoft.Office.Interop.Word.ContentControl.Los controles host siguientes están disponibles con proyectos de Excel:Chart (Control)ListObject (Control)NamedRange (Control)XmlMappedRange (Control)Los controles host siguientes están disponibles con proyectos de Word:Bookmark (Control)Controles de contenidoXMLNode (Control)XMLNodes (Control)Los controles host agregados a los documentos de Office se comportan como los objetos nativos de Office; sin embargo, los controles host poseen funcionalidad adicional que incluye eventos y capacidades de enlace a datos. Por ejemplo, cuando desea capturar los eventos de un objeto Microsoft.Office.Interop.Excel.Range nativo en Excel, en primer lugar debe administrar el evento de cambio de la hoja de cálculo. A continuación debe determinar si el cambio se produjo dentro de los intervalos Microsoft.Office.Interop.Excel.Range. En cambio, el control hostMicrosoft.Office.Tools.Excel.NamedRange tiene un evento Change que se puede administrar directamentePanel de AccionesUn panel de acciones es un panel de tareas Acciones de documentos que se puede personalizar y que está asociado a un documento de Microsoft Office Word o a un libro de Microsoft Office Excel específicos. Está hospedado en el panel de tareas de Office junto con otros paneles de tareas integrados, como Origen XML en Excel o Estilos y formato en Word. Puede utilizar los controles de formularios Windows Forms o los controles de WPF para diseñar la interfaz de usuario del panel de acciones.Puede crear un panel de acciones sólo en una personalización de nivel de documento para Word o Excel. No puede crear un panel de acciones en un complemento de nivel de aplicación. Para obtener más información, vea Características disponibles por aplicación y tipo de proyecto.
  3. Elegir un tipo de proyecto de OfficeVisual Studio Tools para Office proporciona los siguientes tipos de plantillas de proyecto:Personalizaciones de nivel de documento.Complementos de nivel de aplicación.Plantillas de flujo de trabajo de SharePoint.Plantillas de formulario de InfoPath.Para decidir cuál de estos tipos de proyecto es el más adecuado para su solución, considere si desea que el código se ejecute únicamente cuando se abra un documento específico o si desea que el código esté disponible siempre que se ejecute la aplicación de Microsoft Office. Para obtener más información sobre las plantillas de proyecto, vea Información general sobre las plantillas de proyecto en Visual Studio Tools para Office.Los tipos de proyectos que puede crear dependen de qué aplicaciones de Microsoft Office haya instalado en el equipo de desarrollo. Para obtener más información, consulte Características disponibles por aplicación y tipo de proyecto.
  4. Personalizaciones de nivel de documentoLas personalizaciones de nivel de documento constan de un ensamblado que está asociado a un documento, libro o plantilla únicos en Microsoft Office Word o Microsoft Office Excel. El ensamblado se carga cuando se abre el documento asociado. Las características de las personalizaciones que cree sólo estarán disponibles cuando se abra el documento asociado. Las personalizaciones no pueden realizar cambios en toda la aplicación, como mostrar un nuevo elemento de menú o la ficha de la cinta de opciones cuando se abre un documento.Visual Studio Tools para Office incluye herramientas que le ayudan a crear personalizaciones en Visual Studio. El documento que personaliza se hospeda como una superficie de diseño en Visual Studio, que permite diseñar el documento arrastrando y colocando controles en él. Muchas otras características de Visual Studio están disponibles en los proyectos de nivel de documento, como los controles de formularios Windows Forms, el enlace de datos y un depurador integrado.Para obtener más información sobre las personalizaciones, vea Introducción a la programación de personalizaciones de nivel de documento para Excel, Introducción a la programación de personalizaciones de nivel de documento para Word y Arquitectura de las personalizaciones de nivel de documento.
  5. Complementos de nivel de aplicaciónLos complementos de nivel de aplicación constan de un ensamblado asociado a una aplicación de Microsoft Office. Normalmente, el complemento se ejecuta cuando se inicia la aplicación asociada, aunque los usuarios también pueden cargar complementos después de que se inicie la aplicación. Las características de los complementos que cree están disponibles para la propia aplicación, independientemente de los documentos que se abran.Visual Studio Tools para Office incluye herramientas que le ayudan a crear complementos en Visual Studio. Los proyectos de complemento incluyen una clase generada automáticamente que representa el complemento. Esta clase proporciona propiedades y eventos que puede utilizar para tener acceso al modelo de objetos de la aplicación host y para ejecutar código cuando se cargue y se cierre el complemento. Muchas otras características de Visual Studio están disponibles en los proyectos en el nivel de aplicación, como los formularios Windows Forms y un depurador integrado.Para obtener más información sobre los complementos, vea Introducción a la programación de complementos de nivel de aplicación y Arquitectura de los complementos de nivel de aplicación.
  6. Para usar las características de una aplicación de Microsoft Office en un proyecto de Visual Studio Tools para Office, debe utilizar el ensamblado de interoperabilidad primario de esa aplicación. Los ensamblados de interoperabilidad primarios permiten que el código administrado interactúe con el modelo de objetos basado en COM de una aplicación de Office.Al crear un nuevo proyecto de Visual Studio Tools para Office, Visual Studio agrega referencias a los ensamblados de interoperabilidad primarios que resultan necesarios para generar el proyecto. En algunos escenarios, es posible que necesite agregar referencias a otros ensamblados de interoperabilidad primarios (por ejemplo, si desea utilizar una característica de Microsoft Office Word en un proyecto de Microsoft Office Excel).
  7. Open XML Format SDK 2.0 CTP:http://www.microsoft.com/downloads/details.aspx?FamilyID=c6e744e5-36e9-45f5-8d8c-331df206e0d0&DisplayLang=enObjectModel:http://msdn.microsoft.com/en-us/library/bb521236.aspx
  8. Para desarrollar complementos para Microsoft Office Outlook, puede interactuar con los objetos suministrados por el modelo de objetos de Outlook. El modelo de objetos de Outlook proporciona clases que representan elementos de la interfaz de usuario. Por ejemplo, la clase Application representa la aplicación completa, la clase MAPIFolder representa una carpeta que contiene mensajes de correo electrónico u otros elementos y la claseMailItem representa un mensaje de correo electrónico.Este tema proporciona una descripción breve de algunas de las clases principales del modelo de objetos de Outlook. Para obtener la documentación completa del modelo de objetos de Outlook, vea las secciones de MSDN Outlook 2007 DeveloperReference y Welcometothe Microsoft Office Outlook 2003 VBA LanguageReference. Obtener acceso a objetos en un proyecto de OutlookOutlook proporciona muchas clases con las que se puede interactuar. Para utilizar el modelo de objetos de forma eficaz, debe estar familiarizado con las siguientes clases de nivel superior:ApplicationExplorerInspectorMAPIFolderMailItemAppointmentItemTaskItemContactItemExplorer (Clase)La clase Explorer representa una ventana que muestra el contenido de una carpeta que contiene elementos, como por ejemplo, mensajes de correo electrónico, tareas o citas. La clase Explorer incluye métodos y propiedades, que se pueden utilizar para modificar la ventana, y eventos que se generan cuando la ventana cambia.Para obtener un objeto Explorer, realice una de las siguientes operaciones:Utilice la propiedad Explorers de la clase Application para obtener acceso a todos los objetos Explorer en Outlook.Utilice el método ActiveExplorer de la clase Application para obtener el objeto Explorer que tenga el foco actualmente.Utilice el método GetExplorer de la clase MAPIFolder para obtener el objeto Explorer de la carpeta actual.Inspector (Clase)La clase Inspector representa una ventana que muestra un único elemento, como por ejemplo, un mensaje de correo electrónico, una tarea o una cita. La clase Inspector incluye métodos y propiedades, que se pueden utilizar para modificar la ventana, y eventos que se generan cuando la ventana cambia.Para obtener un objeto Inspector, realice una de las siguientes operaciones:Utilice la propiedad Inspectors de la clase Application para obtener acceso a todos los objetos Inspector en Outlook.Utilice el método ActiveInspector de la clase Application para obtener el objeto Inspector que tenga el foco actualmente.Utilice el método GetInspector de un elemento específico, como por ejemplo, un elemento MailItem oAppointmentItem, para recuperar el inspector que tiene asociado.MAPIFolder (Clase)La clase MAPIFolder representa una carpeta que contiene mensajes de correo electrónico, contactos, tareas y otros elementos. Outlook proporciona 16 objetos MAPIFolder predeterminados.Los valores de enumeración OlDefaultFolders definen los objetos MAPIFolder predeterminados. Por ejemplo,T:Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderInbox corresponde a la carpeta Bandeja de entradade Outlook.Para obtener un ejemplo que muestre cómo tener acceso a un objeto MAPIFolder predeterminado y crear un nuevo objeto MAPIFolder, vea Cómo: Crear elementos de carpeta personalizados.MailItem (Clase)La clase MailItem representa un mensaje de correo electrónico. Los objetos MailItem suelen encontrarse en carpetas, como por ejemplo, Bandeja de entrada, Elementos enviados y Bandeja de salida. MailItem expone propiedades y métodos que se pueden utilizar para crear y enviar mensajes de correo electrónico.Para obtener un ejemplo que muestre cómo crear un mensaje de correo electrónico, vea Cómo: Crear un elemento de correo electrónico.AppointmentItem (Clase)La clase AppointmentItem representa una reunión, una cita única o bien una reunión o cita periódicas en la carpetaCalendario. La clase AppointmentItem incluye métodos que realizan acciones, como responder o reenviar convocatorias de reunión, y propiedades que especifican los detalles de la reunión, como su ubicación y hora.Para obtener un ejemplo que muestre cómo crear una cita, vea Cómo: Crear una convocatoria de reunión.TaskItem (Clase)La clase TaskItem representa una tarea que se va a realizar en un margen de tiempo especificado. Los objetosTaskItem se encuentran en la carpeta Tareas.Para crear una tarea, utilice el método CreateItem de la clase Application y pase el valor olTaskItem para el parámetro.ContactItem (Clase)La clase ContactItemrepresenta un contacto en la carpeta Contactos. Los objetos ContactItem contienen información de contacto de diversa índole para las personas a las que representan, como por ejemplo, domicilio, direcciones de correo electrónico y números de teléfono.Para obtener un ejemplo que muestre cómo crear un nuevo contacto, vea Cómo: Agregar una entrada a los contactos de Outlook. Para obtener un ejemplo que muestre cómo buscar un contacto existente, vea Cómo: Buscar un contacto específico.
  9. Clase ThisAddInCuando se crea un nuevo proyecto de complemento de Outlook, Visual Studio Tools para Office crea automáticamente un archivo de código ThisAddIn.vb o ThisAddIn.cs en el nuevo proyecto. Este archivo de código define una clase ThisAddinque hereda de OutlookAddIn. Puede obtener acceso a los miembros de la clase OutlookAddIn si utiliza las palabras claveMe (en Visual Basic) o this (en C#) en la clase ThisAddIn. El código que está fuera de la clase ThisAddIn puede obtener acceso al objeto ThisAddIn mediante la propiedad estática Globals.ThisAddIn.Nota:Para evitar las advertencias de seguridad cuando utiliza propiedades y métodos que están bloqueados por el guardián del modelo de objetos de Outlook, obtenga los objetos de Outlook del objeto ThisAddIn. Para obtener más información, vea Consideraciones de seguridad específicas para soluciones de Office.
  10. Application (Clase)La clase Application representa la aplicación de Outlook y es la clase de nivel superior del modelo de objetos de Outlook. Algunos de los miembros más importantes de esta clase incluyen:El método CreateItem, que se puede utilizar para crear un nuevo elemento, como un mensaje de correo electrónico, una tarea o una cita.La propiedad Explorers, que se puede utilizar para obtener acceso a las ventanas que muestran el contenido de una carpeta en la interfaz de usuario de Outlook.La propiedad Inspectors, que se puede utilizar para obtener acceso a las ventanas que muestran el contenido de un único elemento, como un mensaje de correo electrónico o una convocatoria de reunión.Para obtener una instancia de la clase Application, utilice la propiedad Application de la clase ThisAddin.
  11. MailItem (Clase)La clase MailItem representa un mensaje de correo electrónico. Los objetos MailItem suelen encontrarse en carpetas, como por ejemplo, Bandeja de entrada, Elementos enviados y Bandeja de salida. MailItem expone propiedades y métodos que se pueden utilizar para crear y enviar mensajes de correo electrónico.Para obtener un ejemplo que muestre cómo crear un mensaje de correo electrónico, vea Cómo: Crear un elemento de correo electrónico.
  12. ContactItem (Clase)La clase ContactItemrepresenta un contacto en la carpeta Contactos. Los objetos ContactItem contienen información de contacto de diversa índole para las personas a las que representan, como por ejemplo, domicilio, direcciones de correo electrónico y números de teléfono.Para obtener un ejemplo que muestre cómo crear un nuevo contacto, vea Cómo: Agregar una entrada a los contactos de Outlook. Para obtener un ejemplo que muestre cómo buscar un contacto existente, vea Cómo: Buscar un contacto específico.
  13. Visual Studio Tools para Office incluye plantillas de proyecto que puede utilizar para crear personalizaciones de nivel de documento y complementos de nivel de aplicación para Microsoft Office Excel. Puede utilizar estas soluciones para automatizar Excel, ampliar las características de Excel y personalizar la interfaz de usuario de Excel. Cree los siguientes tipos de proyectos de Excel con las plantillas de proyecto del cuadro de diálogo Nuevo proyecto: Complemento para Excel Libro de Excel Plantilla de Excel Estas plantilla incluyen las referencias de ensamblado y los archivos de proyecto requeridos. Visual Studio Tools para Office proporciona una versión de estas plantillas para Microsoft Office 2003 y Microsoft Office System 2007. Para obtener más información sobre las personalizaciones de nivel de documento, vea Desarrollo de personalizaciones de nivel de documento de Excel. Para obtener más información sobre los complementos de nivel de aplicación, vea Introducción a la programación de complementos de nivel de aplicación.
  14. El modelo de objetos está estrechamente relacionado con la interfaz de usuario. El objeto Application representa toda la aplicación y cada objeto Workbook contiene una colección de objetos Worksheet. A partir de ahí, la mayor abstracción que representa celdas es el objeto Range, que permite trabajar con celdas individuales o grupos de celdas.Visual Studio Tools para Office extiende muchos de estos objetos nativos a elementos y controles host que se pueden utilizar en las personalizaciones de documentos. Estos controles tienen una funcionalidad adicional que incluye funciones y eventos de enlace de datos. Por ejemplo, un objeto Microsoft.Office.Interop.Excel.Range nativo de Excel se extiende a un control Microsoft.Office.Tools.Excel.NamedRange, que puede enlazarse a datos y expone eventos. Para obtener más información sobre los elementos y controles host, vea Objetos extendidos en los proyectos de nivel de documento. Como los datos de un documento de Excel están muy estructurados, el modelo de objetos es jerárquico y sencillo. Excel proporciona cientos de objetos con los que quizá desee interactuar, pero puede empezar a trabajar con el modelo de objetos centrándose en un subconjunto muy pequeño de los objetos disponibles. Estos objetos incluyen los cuatro siguientes: Aplicación Libro Hoja de cálculo Intervalo La mayor parte del trabajo realizado con Excel se basa en estas cuatro clases y sus miembros.
  15. Cuando crea un nuevo proyecto de nivel de aplicación para Excel con Visual Studio Tools para Office, Visual Studio crea automáticamente un archivo de código ThisAddIn.vb o ThisAddIn.cs. Puede tener acceso al objeto Application con Me.Application o this.Application. Al crear un nuevo proyecto en el nivel del documento para Excel utilizando Visual Studio Tools para Office, tiene la opción de crear un nuevo proyecto de libro o de plantilla de Excel. Visual Studio Tools para Office crea automáticamente los archivos de código (ThisWorkbook, Sheet1, Sheet2, Sheet3) en el nuevo proyecto de Excel para los proyectos de libro y de plantilla.Es posibleutilizar la clase global, Globals, para teneracceso a ThisWorkbook, Sheet1, Sheet2 o Sheet3 desdefuera de lasrespectivasclases. Para obtenermásinformación, veaAcceso global a objetos en proyectos de Visual Studio Tools para Office. En el ejemplosiguiente se llama al métodoPrintPreview de Sheet1, independientemente de si el códigoestásituado en la clase Sheet o en la clase Workbook.
  16. El objeto Microsoft.Office.Interop.Excel.Range será el objeto más utilizado en las aplicaciones de Excel. Antes de poder manipular ningún área dentro de Excel, hay que expresarla en forma de objeto Range y trabajar con los métodos y propiedades de ese rango de celdas. Un objeto Range representa una celda, una fila, una columna, una selección de celdas que contiene uno o varios bloques de celdas (que podrían ser contiguos o no), o incluso un grupo de celdas de varias hojas. Para una personalización de documento, Visual Studio Tools para Office incluye dos controles host de intervalo: el control Microsoft.Office.Tools.Excel.NamedRange y el control Microsoft.Office.Tools.Excel.XmlMappedRange. Para obtener más información sobre los controles host, vea Información general sobre elementos y controles Host.
  17. Un complemento de nivel de aplicación para Microsoft Office Excel está compuesto de un ensamblado que carga Excel. El ensamblado normalmente extiende Excel mediante la personalización de la interfaz de usuario y la automatización de Excel. A diferencia de una personalización de nivel de documento, que está asociada a un libro concreto, la funcionalidad que se implementa en un complemento no está restringida a un único libro. Cuando crea un proyecto de complemento de Excel, Visual Studio Tools para Office genera una clase, denominada ThisAddIn, que es la base de la solución. Esta clase proporciona un punto de partida para escribir el código y también expone el modelo de objetos de Excel al complemento. Para Excel 2007, también puede personalizar la interfaz de usuario de las siguientes formas:Crear un panel de tareas personalizado. (Para obtener más información, vea Información general sobre los paneles de tareas personalizados)Agregar fichas personalizadas que aparecen en la cinta de opciones. (Para obtener más información, vea Información general sobre la cinta de opciones)Agregar grupos personalizados a una ficha integrada que aparece en la cinta de opciones. (Para obtener más información, vea Cómo: Personalizar una ficha integrada)Para Excel 2003, también puede personalizar la interfaz de usuario de las siguientes formas:Agregar barras de herramientas y elementos de barra de herramientas personalizados.(Para obtener más información, vea Cómo: Crear barras de herramientas de Office mediante programación)Agregar menús y elementos de menú. (Para obtener más información, vea Cómo: Crear menús de Office mediante programación)
  18. Los paneles de tareas son paneles de interfaz que normalmente están anclados acoplados en un lado de una ventana de una aplicación de Microsoft Office. Casi todas las aplicaciones de Microsoft Office incluyen paneles de tareas integrados. Un ejemplo de panel de tareas es el panel de tareas Ayuda de Word. Visual Studio Tools para Office proporciona dos maneras diferentes de personalizar los paneles de tareas: Puede agregar un panel de acciones a una personalización de nivel de documento. De forma predeterminada, el panel de acciones aparece en la parte derecha de la aplicación, a la derecha del documento. Sin embargo, el panel de acciones también puede aparecer a la izquierda, encima o debajo del documento. Puede agregar un panel de tareas personalizado a un complemento de nivel de aplicación para Microsoft Office System 2007. Los usuarios pueden acoplar paneles de tareas personalizados en diferentes lados de la ventana de la aplicación o pueden arrastrar paneles de tareas personalizados a cualquier lugar de la ventana. Los paneles de acciones y los paneles de tareas personalizados proporcionan funcionalidad al hospedar una gran variedad de controles que ayudan a los usuarios con tareas como la entrada de datos. En comparación con una barra de herramientas, los paneles de acciones y los paneles de acciones personalizados proporcionan un área mucho más grande para incluir texto y controles.