none
Alinear texto en word con Vbasic RRS feed

  • Pregunta

  • Hola quiero hacer un formulario q me alinee un texto a derechas,izquierdas o centro segun se elija la opcion pero no soy capaz.Tengo echo este codigo y funciona todo salvo la alineacion.Pone en cursiva,negrito y subrayado,cambia el color y tamaño pero no hay manera de alinearlo como quiera segun las opciones.Aqui dejo el codigo

    Code Snippet

    Dim neg, cur, subr As Boolean
    Dim alineacion, color, tamaño
    Private Sub cbxColor_Change()
    Select Case cbxColor.ListIndex
    Case 0
    color = azul
    lblTam.ForeColor = &HFF0000
    Case 1
    lblTam.ForeColor = &HFF&
    color = rojo
    Case 2
    color = verde
    lblTam.ForeColor = &H8080&
    Case 3
    color = blanco
    lblTam.ForeColor = &HFFFFFF
    End Select
    End Sub
    Private Sub cmbDocumento_Click()
    For i = 1 To 8
    ActiveDocument.Paragraphs(i).Range.Select
    Select Case cbxColor.ListIndex
    Case 0
    Selection.Font.ColorIndex = wdBlue
    Case 1
    Selection.Font.ColorIndex = wdRed
    Case 2
    Selection.Font.ColorIndex = wdGreen
    Case 3
    Selection.Font.ColorIndex = wdWhite
    End Select
    Selection.Font.Size = tamaño
    If neg = True Then Selection.Font.Bold = wdToggle
    If cur = True Then Selection.Font.Italic = wdToggle
    If subr = True Then Selection.Font.Underline = wdUnderlineSingle
    Next i
    Inicio.Hide
    End Sub
    Private Sub cvrCursiva_Click()
    If cur = False Then
    lblTam.Font.Italic = True
    cur = True
    Else
    lblTam.Font.Italic = False
    cur = False
    End If
    End Sub
    Private Sub cvrNegrita_Click()
    If neg = False Then
    lblTam.Font.Bold = True
    neg = True
    Else
    lblTam.Font.Bold = False
    neg = False
    End If
    End Sub
    Private Sub cvrSubrayado_Click()
    If subr = False Then
    lblTam.Font.Underline = True
    subr = True
    Else
    lblTam.Font.Underline = False
    subr = False
    End If
    End Sub
    Private Sub opcCen_Click()
    lblTam.TextAlign = fmTextAlignCenter
    alineacion = centro
    End Sub
    Private Sub opcDer_Click()
    If alineacion = centro Then
    lblTam.TextAlign = fmTextAlignRight
    alineacion = derecha
    End If
    End Sub
    Private Sub opcIz_Click()
    lblTam.TextAlign = fmTextAlignLeft
    alineacion = izquierda
    End Sub
    Private Sub scbTam_Change()
    Select Case scbTam.Value
    Case Is < 10
    lblTam.Font.Size = 8
    lblt.Caption = "8"
    tamaño = 8
    Case Is < 20
    lblTam.Font.Size = 10
    lblt.Caption = "10"
    tamaño = 10
    Case Is < 30
    lblTam.Font.Size = 12
    tamaño = 12
    lblt.Caption = "12"
    Case Is < 40
    lblTam.Font.Size = 14
    tamaño = 14
    lblt.Caption = "14"
    Case Is < 50
    lblTam.Font.Size = 16
    tamaño = 16
    lblt.Caption = "16"
    Case Is < 60
    lblTam.Font.Size = 18
    tamaño = 18
    lblt.Caption = "18"
    Case Is < 70
    lblTam.Font.Size = 20
    tamaño = 20
    lblt.Caption = "20"
    End Select
    End Sub
    Private Sub UserForm_Activate()
    neg = False
    cur = False
    subr = False
    alineacion = izquierda
    color = negro
    tamaño = 8
    With cbxColor
    .AddItem "Azul"
    .AddItem "Rojo"
    .AddItem "Verde"
    .AddItem "Blanco"
    End With
    End Sub



    martes, 12 de junio de 2007 21:26

Todas las respuestas

  • Ya se que en tu ejemplo estas usando VB 6 y yo lo hice para VB.NEt pero la forma de hacerlo debe ser muy similar:

     

    Code Snippet

    Dim selRange As Word.Range

    selRange = doc.Paragraphs.Item(1).Range

    selRange.Font.Size = 28

    selRange.Font.Bold = True

    selRange.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphLeft

    selRange = doc.Paragraphs.Item(2).Range.Sentences.Item(2)

    selRange.Italic = True

    selRange = doc.Paragraphs.Item(3).Range.Words.Item(6)

    selRange.Font.Bold = True

    selRange = doc.Paragraphs.Item(5).Range.Words.Item(5)

    selRange.Font.Bold = True

     

    Con esta instrucción puedes dar alineación:

     

    Code Snippet
    selRange.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphLeft

     

    Salu2

     

    Colabora con el foro: Si la respuesta te es de utilidad marca la pregunta como respondida.

    Luis Ruiz Pavón

    MCP

    Blog: http://geeks.ms/blogs/lruiz

    miércoles, 13 de junio de 2007 6:46
  • He probado a meter ese codigo en los metodos q alinean y nada no da error pero no alinea a derechas izquierdas o centro
    miércoles, 13 de junio de 2007 19:05