Macro para Outlook 2016



   AUTOR PREGUNTA

Publicado 16 junio 2023 - 09:44

Estoy intentando crear un macro para ajustar el párrafo, pero me da un error de objeto. Mi proyecto es:

 

Public Sub Formato()

Dim thisObject As Object
Set thisObject = Nothing

With Selection.ParagraphFormat.Alignment = wdAlignParagraphJustify
    Selection.ParagraphFormat.SpaceBefore = 12
    Selection.ParagraphFormat.LeftIndent = 1
    End With

End Sub

 




1 personas más tuvieron esta duda Yo también

 

Publicado 19 junio 2023 - 12:45

Creo que estás tratando de ejecutar un código VBA que y es para Microsoft Word, en lugar de Microsoft Outlook. Outlook maneja los correos electrónicos en HTML, en lugar de los objetos de Word, por lo que la forma de manejar el formato de párrafo es un poco diferente.

Si quieres cambiar el formato de los párrafos en un correo electrónico en Outlook, tendrias que crear un correo en Word con el formato que deseas, y luego enviar ese correo desde Word. Un ej de eso que he visto sería de este estilo:

Public Sub Formato()
  Dim doc As Word.Document
  Dim rng As Word.Range
  ' Crea un nuevo documento en Word
  Set doc = Word.Documents.Add
  Set rng = doc.Range
  ' Añade y formatea el texto
  With rng
      .Text = "Aquí va tu texto"
      .ParagraphFormat.Alignment = wdAlignParagraphJustify
      .ParagraphFormat.SpaceBefore = 12
      .ParagraphFormat.LeftIndent = InchesToPoints(1)
  End With
  ' Crea un nuevo correo electrónico en Outlook
  Dim olApp As Outlook.Application
  Dim olMail As Outlook.MailItem
  Set olApp = New Outlook.Application
  Set olMail = olApp.CreateItem(olMailItem)
  ' Copia el contenido del documento de Word en el cuerpo del correo electrónico
  rng.Copy
  olMail.GetInspector.WordEditor.Content.Paste
  ' Muestra el correo electrónico
  olMail.Display
  ' Limpia
  doc.Close False
  Set rng = Nothing
  Set doc = Nothing
  Set olMail = Nothing
  Set olApp = Nothing
End Sub

Espero te sea de ayuda. saludos.


 

Publicado 19 junio 2023 - 13:34

Si estás intentando ajustar el formato de un párrafo en un correo de Outlook usando un macro de VBA, el enfoque puede ser un poco diferente al que has estado intentando, debido a que Outlook maneja los correos electrónicos en HTML, no como objetivos de word.

 

Esto seria codigo de empiece para lo que quieres amigo:

Sub CrearCorreoConFormato()
  Dim olApp As Object
  Dim NuevoCorreo As Object

  Set olApp = CreateObject("Outlook.Application")
  Set NuevoCorreo = olApp.CreateItem(0)

  ' Define el formato HTML para el correo
  Dim cuerpoCorreo As String
  cuerpoCorreo = "<p style='text-align:justify; margin-left:1em;'> Este es tu texto. </p>"

  With NuevoCorreo
      .Subject = "Asunto del correo"
      .BodyFormat = olFormatHTML
      .HTMLBody = cuerpoCorreo
      .Display
  End With

  Set NuevoCorreo = Nothing
  Set olApp = Nothing
End Sub

Este código crea un nuevo correo electrónico en Outlook y establece el cuerpo del correo como HTML. Dentro de la etiqueta <p> (párrafo) en HTML, puedes definir la alineación del texto (text-align:justify) y la sangría a la izquierda (margin-left:1em). Reemplaza " Este es tu texto. " con el texto que quieras usar.

Personaliza este codigo como creas oportuno.


   AUTOR PREGUNTA

Publicado 28 agosto 2023 - 12:45

Muchas gracia. Francer, tu opción podría servir, pero yo lo quiero para dar formato al texto al responder un correo.