office net microsoft instalar application .net ms-word ms-office msdn office-interop

.net - net - Documentación Microsoft.Office.Interop.Word



microsoft office interop word application c# (5)

Necesito usar el espacio de nombres Microsoft.Office.Interop.Word para extraer si un documento de Word contiene macros y cuáles. La documentación de MSDN para este espacio de nombres no proporciona mucha información en comparación con la documentación de otras clases .Net. ¿Dónde puedo obtener más información sobre estos espacios de nombres (ejemplos, documentación completa, etc.)? Ya busqué en Google y SO, pero no mucha información.



Microsoft.Vbe.Interop es el espacio de nombres para VBA. (VBE es Visual Basic para Application Extensibility 5.3 .) Las palabras clave para ayudarle a buscar son VBProject , VBComponent y CodeModule .

MSDN Search para VBProject lo ayudará a comenzar. http://social.msdn.microsoft.com/Search/en-US?query=VBProject&ac=8 .

El siguiente artículo es para VBA, pero se convierte fácilmente. WD2000: Macro de ejemplo para devolver nombres de macro y procedimiento en http://support.microsoft.com/kb/262961 .


No hay buena documentación. Los únicos recursos son el MSDN (silencioso malo) y algunos blogs. Tal vez pueda encontrar información aquí: http://blogs.msdn.com/mshneer/


La mayor parte de la documentación se encuentra en el archivo de ayuda de VBA que se envía con Microsoft Word; para Microsoft Word 2003, busque un archivo VBAWD10.CHM. También consulte la referencia de Microsoft Office Visual Basic ( VBAOF11.CHM )

10 y 11 en lo anterior son números de versión de Word y Office, por lo que su millaje variará según la versión de Word que haya instalado. Además, el nombre no es coherente en todas las versiones de Word, por lo que una búsqueda de todo lo que VBA * .CHM probablemente genere la mayor parte de la documentación que necesita.

Estos responderán la mayoría de sus preguntas sobre la API de Word.

Sin embargo, no se puede ver una forma obvia de encontrar la lista de macros en un documento o plantilla abierto ... Por favor, agregue un comentario a esta respuesta si encuentra un método, como me gustaría saber.

(Tenga en cuenta que cada llamada puede arrojar una excepción al usar interoperabilidad de Word. Si Word tiene un cuadro de diálogo modal abierto, obtendrá una excepción, por ejemplo. Programe en consecuencia).


La respuesta correcta es verificar la propiedad Document.HasVBProject .

Para citar de la sección Observaciones: "Esta propiedad es más útil para determinar mediante programación si un documento debe guardarse en un formato de archivo habilitado para macros. Si se guarda en otro formato, las macros y los proyectos de código contenidos en el documento pueden perderse".