¿Cómo crear una macro de Outlook que actualice los atributos de una tabla para reducirla al texto contenido sin ajustarla?

¿Cómo crear una macro de Outlook que actualice los atributos de una tabla para reducirla al texto contenido sin ajustarla?

Actualizado:Macro actualizada con corrección.

Versión: Outlook 2013

Quiero poder...

  1. Modifique el tamaño de fuente del texto de la tabla.(Hecho)
  2. Elimine (desmarque) los atributos "Ancho preferido" de los atributos activos de tabla, columna y celda.
  3. Elimine (desmarque) el atributo "Altura especificada" de las filas de la tabla.

Si uso aTbl.Columns.PreferredWidth = Uncheckedpara comprimir las columnas, ajusta las palabras y no desmarca la casilla. Quiero que NO ajuste las palabras.

Si uso autoFit, se ve igual que aTbl.Columns.PreferredWidth = Unchecked.

Si configuro las columnas individualmente, se ve igual que aTbl.Columns.PreferredWidth = Unchecked.

Tuve que importar la biblioteca de objetos de MS Word:

Importación de biblioteca de objetos de MS Word

Lo que tengo hasta ahora:

Public Sub FormatSelectedText()
    Dim objItem As Object
    Dim objInsp As Outlook.Inspector

    ' Add reference to Word library in VBA Editor, Tools, References
    Dim objWord As Word.Application
    Dim objDoc As Word.Document
    Dim objSel As Word.Selection
    'On Error Resume Next

    'Reference the current Outlook item
    Set objItem = Application.ActiveInspector.CurrentItem
    If Not objItem Is Nothing Then
        If objItem.Class = olMail Then
            Set objInsp = objItem.GetInspector
            If objInsp.EditorType = olEditorWord Then
                Set objDoc = objInsp.WordEditor
                Set objWord = objDoc.Application
                Set objSel = objWord.Selection

                objSel.Font.Size = 8
                Dim aTbl As Word.Table
                For i = 1 To objSel.Tables.Count()
                    Set aTbl = objSel.Tables.Item(i)
                    aTbl.Borders.InsideLineStyle = wdLineStyleSingle
                    aTbl.Borders.OutsideLineStyle = wdLineStyleSingle
                    aTbl.Rows.Height = Unchecked
                    aTbl.Rows.AllowBreakAcrossPages = False
                    aTbl.Columns.PreferredWidth = Unchecked
                    aTbl.Columns.PreferredWidthType = wdPreferredWidthAuto
                    aTbl.PreferredWidth = Unchecked
                Next
            End If
        End If
    End If

    Set objItem = Nothing
    Set objWord = Nothing
    Set objSel = Nothing
    Set objInsp = Nothing
End Sub

Cómo se ve antes del script:

Antes

Resultado Esperado:

Resultado Esperado

Después de ejecutar sin aTbl.Columns.PreferredWidth = Unchecked(cerrar pero no comprimir las columnas):

Con ancho preferido

Después de ejecutar con aTbl.Columns.PreferredWidth = Unchecked(Solo... No):

Sin ancho preferido

Ejemplo de las configuraciones que deben cambiarse para modificar la tabla correctamente:

Propiedades de la tabla - Tabla Propiedades de tabla: fila Propiedades de tabla: columna Propiedades de tabla: celda

Respuesta1

Para mí esto ha funcionado:

                aTbl.Columns.PreferredWidth = Unchecked
                aTbl.Columns.PreferredWidthType = wdPreferredWidthAuto

información relacionada