Post by jcpintocomo centrar una tabla en el documento. Lo intento de
varias formas pero se centra el texto en cada celda,
pero no la tabla completa respecto al documento.
Hola, Juan Carlos:
Si se centra el texto será porque estarás centrando el texto existente en
las celdas de la tabla en lugar de centrar la tabla propiamente dicha, pero
como no has indicado el código fuente que estás ejecutando, pues tampoco soy
adivino para averiguar lo que estás ejecutando y cómo lo estás ejecutando.
En principio vamos a ver cómo se referencia una tabla cualquiera en un
documento de Word, en el ejemplo, la segunda tabla existente:
Imports Microsoft.Office.Interop
' Referenciamos el objeto Application.
'
Dim app As New Word.Application
' Referenciamos el documento
'
Dim doc As Word.Document = _
app.Documents.Open("C:\Mis documentos\Doc1.doc")
' Referenciamos la segunda tabla existente en el documento
'
Dim table As Word.Table = doc.Tables.Item(2)
Una vez que tenemos referenciado un objeto Word.Table, vamos a centrarlo en
la página.
Hay dos maneras de centrar una tabla dependiendo si tiene establecido o no
un ajuste de texto. Por defecto, cuando se inserta una nueva tabla, no tiene
establecido ningún ajuste de texto, por lo que la posición horizontal de la
tabla se encontrará establecida con respecto a los márgenes izquierdo y
derecho de la página (los límites donde se puede escribir un texto
cualquiera). Pero si se ha especificado que el texto se ajuste alrededor de
la tabla, o se ha movido la tabla con el ratón a una posición en concreto,
entonces la posición horizontal de la tabla estará en relación con el borde
izquierdo de la página, que en principio es distinto del margen izquierdo de
la página.
En el primer caso (no existe ningún ajuste de texto, que es el valor por
defecto), ejecutaríamos simplemente lo siguiente:
' Centramos la tabla
'
table.Rows.Alignment = Word.WdRowAlignment.wdAlignRowCenter
Pero en el segundo caso (el texto se encuentra alrededor de la tabla),
primero tendrás que autoajustar la tabla a la ventana, y después centrarla:
' Formateamos la tabla para que se ajuste a la ventana.
'
table.AutoFitBehavior(Word.WdAutoFitBehavior.wdAutoFitWindow)
' Centramos la tabla
'
table.Rows.Alignment = Word.WdRowAlignment.wdAlignRowCenter
Todo esto lo puedes observar si abres el documento con Microsoft Word y
observas el cuadro de diálogo «Propiedades de tabla». Si seleccionas la
pestaña «Tabla», observarás que el botón «Posición...» se encuentra
deshabilitado si no existe ningún ajuste del texto, y habilitado si el
ajuste del texto se encuentra alrededor de la tabla, por lo que en éste
caso, la tabla ya tendrá una posición horizontal izquierda, derecha, etc.,
con relación a la página, margen o columna, lo que se especifique.
Por último, guardaríamos los cambios efectuados y cerraríamos el objeto
Word.Application:
' Guardamos los cambios y cerramos el documento.
'
doc.Save()
doc.Close()
doc = Nothing
' Cerramos Word y liberamos los recursos asociados.
'
app.Quit()
app = Nothing
En fin, espero que con esta explicación conozcas la manera de centrar bien
tu tabla de Word. :-)
Un saludo
--
Enrique Martínez
[MS MVP - VB]
Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.