Cómo puedes automatizar Word e incrustarlo en VB 6
En cualquier escenario de carga de formulario, los desarrolladores pueden valerse del método ''Abrir'' para adjuntar los archivos *.docx, *.doc, *.dot, *.dotx, *.rtf o *.txt desde el disco duro o el servidor y abrirlos en un área en el formulario. El archivo de MS Word puede tener varios formatos, incluyendo los de solo lectura, protegido con contraseña, editado por completo o prohibido para guardar o imprimir según las distintas necesidades. Del mismo modo, los desarrolladores pueden automatizar Word de forma sencilla empleando el componente Word.
Pulsa aquí para que descargues el componente Office Viewer: Compatibilidad con vb6, proyecto vb.net para Word, Excel, PowerPoint, Visio y Project
Cómo se Incrusta el componente de Word en el formulario VB 6
Con nuestro artículo (modo guía paso por paso) podrás ver cómo incrustar la ventana de MS Word en un formulario VB.
En primer lugar, debes instalar el paquete en caso de que no tengas el archivo officeviewer.ocx a la mano.
Inicia tu Visual Basic y créate un nuevo proyecto estándar. Form1 se crea de forma predeterminada.
Haz clic derecho en la región en blanco ubicada en el panel Caja de herramientas. Procede pulsando el "Componente...".
Fija el Componente Office Viewer de Edraw dentro del cuadro de diálogo emergente.
Pulsa el botón de Aceptar.
En este momento, el componente Office Viewer se agregó en la ventana de la barra de herramientas.
Cámbiate a un formulario VB 6, seguido; agrégale el componente.
El componente incorpora una buena cantidad de métodos, eventos y propiedades para personalizar la ventana de Excel.
El desarrollador puede valerse del código a continuación para abrir un archivo de Excel en el evento Form_Load.
Private Sub Form_Load()
EDOffice1.OpenFileDialog
'EDOffice1.OpenWord "d:\test.docx"
'EDOffice1.Open "d:\test.doc", "Word.Application"
End Sub
En aras de proteger el documento de Word de la modificación por parte del usuario final, el desarrollador debe añadir el siguiente código en el evento DocumentOpened.
Private Sub EDOffice_DocumentOpened()
EDOffice1.ProtectDoc 2 'wdAllowOnlyFormFields
End Sub
Existen ciertas fórmulas de automatización de palabras envueltas disponibles para crear o modificar datos de palabras.
bool [id(58), helpstring("Muestra/Oculta las revisiones para el programa de Office.")]
VARIANT_BOOL WordShowRevisions([in] VARIANT_BOOL Show);
[id(59), helpstring("Acepta o rechaza todos los cambios registrados en un documento o rango. ")]
VARIANT_BOOL WordAcceptAllRevisions([in] VARIANT_BOOL Receipt);
[id(60), helpstring("Devuelve el número de marcadores.")]
long WordGetBookmarkCount();
[id(61), helpstring("Devuelve el nombre o valor del marcador especial.")]
BSTR WordReadBookmarkInfo([in] long Pos, [in] VARIANT_BOOL NameOrValue);
[id(62), helpstring("Escribe el valor para el marcador especial.")]
VARIANT_BOOL WordWriteBookmarkInfo([in] BSTR Name, [in] BSTR Value);
[id(63), helpstring("Inserta un archivo en el archivo de Word abierto.")]
VARIANT_BOOL WordInsertFile([in] BSTR FilePath, [in, optional] VARIANT InDocPos);
[id(64), helpstring("Inserta contenido de texto en el archivo de Word abierto.")]
VARIANT_BOOL WordInsertText([in] BSTR Text, [in, optional] VARIANT InDocPos);
[id(65), helpstring("Inserta una imagen en el archivo de Word abierto.")]
VARIANT_BOOL WordInsertPicture([in] BSTR FilePath, [in] VARIANT_BOOL InlineObject, [in, optional] VARIANT InDocPos);
[id(66), helpstring("Inserta un salto en el archivo de Word abierto.")]
VARIANT_BOOL WordInsertBreak([in] WdBreakType BreakType);
[id(67), helpstring("Va al elemento especificado en el documento de Word.")]
VARIANT_BOOL WordGotoItem([in] WdGoToItem What, [in] WdGoToDirection Which, [in, optional] VARIANT Count, [in, optional] VARIANT Name);
[id(68), helpstring("Reemplaza todos los valores de cadena especificados con otros valores de cadena.")]
VARIANT_BOOL WordReplaceText([in] BSTR Text, [in] BSTR ReplaceText, [in] VARIANT_BOOL MatchWholeWord, [in] VARIANT_BOOL MatchCase);
[id(69), helpstring("Compara y combina documentos y luego los muestra en las ventanas actuales.")]
VARIANT_BOOL WordMergeAndCompare([in] BSTR TargetFilePath);
[id(70), helpstring("Desactiva arrastrar y soltar.")]
VARIANT_BOOL WordDisableDragAndDrop(VARIANT_BOOL Disable);
[id(71), helpstring("Devuelve el número de revisiones.")]
long WordGetRevisionCount();
[id(72), helpstring("Devuelve el nombre o valor del marcador especial.")]
BSTR WordReadRevisionInfo([in] long Pos, [in] WdRevision RevType);
[id(73), helpstring("Acepta o rechaza el cambio de seguimiento especificado.")]
VARIANT_BOOL WordAcceptRevision([in] long Pos, [in] VARIANT_BOOL Accept);
[id(74), helpstring("Copia todo el contenido al portapapeles.")]
VARIANT_BOOL WordCopyToClipboard();
[id(75), helpstring("Copia todo el contenido al portapapeles como imagen.")]
VARIANT_BOOL WordCopyToClipboardAsPicture();
[id(76), helpstring("Pega al archivo de Word abierto desde los datos del portapapeles.")]
VARIANT_BOOL WordPasteFromClipboard([in, optional] VARIANT InDocPos);
[id(77), helpstring("Pega al archivo de Word abierto desde los datos del portapapeles con un formato especial.")]
VARIANT_BOOL WordPasteSpecialFromClipboard([in] WdPasteDataType lFormatType, [in] VARIANT_BOOL vFloatOverText, [in, optional] VARIANT InDocPos);
[id(78), helpstring("Devuelve el índice de la página actual en la palabra.")]
long WordGetCurrentPageIndex();
[id(79), helpstring("Devuelve el recuento total de páginas en la palabra.")]
long WordGetPageCount();
Manipula MS Word utilizando la automatización de Visual Basic
Haz clic en Proyecto y luego en Referencias. Aparece el cuadro de diálogo Referencias. Desliza hacia abajo en la lista hasta que encuentres la biblioteca de objetos de Microsoft Word (Biblioteca de objetos de Microsoft Word xx.x) y luego selecciona el elemento para agregar una referencia a Word. Si la biblioteca de objetos correcta para tu versión de Word no aparece en la lista, asegúrate de tener tu versión de Word instalada correctamente.
Haz clic en Aceptar para cerrar el cuadro de diálogo Referencias.
Agrega un CommandButton a Form1.
En la ventana de código de Form1, inserta el siguiente código:
Subcomando privado1_Click()
Dim oWd As Word.Application
Set oWd = EDOffice1.GetApplication()
Dim oDialogs As Word.Dialogs
Set oDialogs = oWd.Dialogs
Dim oDialog As Word.Dialog
Set oDialog = oDialogs.Item(112)
oDialog.Show
End Sub
Presiona F5 para ejecutar el proyecto. La automatización de Word abrirá la ventana de búsqueda/reemplazo de archivos.
Una cosa a tener en cuenta al automatizar Word es Word Macro Recorder. Todavía está allí en Word 2007, pero está oculto en la barra de cinta del desarrollador. Un poco extraño, ya que la grabadora de macros siempre fue la forma más sencilla de automatizar Word para el usuario promedio y, por lo general, no tienen la cinta de desarrollador visible.
Te puede interesar
Incrustación de MS Office en el programa ASP.NET