Visual Basic para Aplicaciones - imprimir en word desde vb6 via automatizacion

Life is soft - evento anual de software empresarial
 
Vista:
Imágen de perfil de Luis
Val: 1
Ha aumentado su posición en 2 puestos en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

imprimir en word desde vb6 via automatizacion

Publicado por Luis (1 intervención) el 07/03/2018 15:23:39
Tengo que retocar algo muy antiguo, necesito que imprima en pantalla los cumpleaños de los empleados con un fondo de globos y esas cosas, una imagen que ocupa todo el fondo ( 100% ) y es un jpg. La idea es presentarlo en pantalla y luego mandar el archivo por mail, no se imprimiría a papel . La limitación es que es en Visual 6 y Word 2003. Estuve buscando informacion sobre los objetos de word 2003 y ya casi no hay . Tuve un problema en mi compu al referenciar oficce 11.0 , por ello debí usar el word como objeto. Copio el código , funciona casi, armé una plantilla con la imagen y desde vb escribo sobre ella. El tema es que cuando imprimo , dependiendo la cantidad de registros o algo que no entiendo ... me ubica la imagen de fondo a veces bien y otras corrrida. Me ayudan a perfeccionarlo ?
Quisiera que lo que le envío sea independiente al diseño de la pagina , o sea, que va con una imagen jpg al 100% de fondo.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
Private Sub Mostrar()
 
Dim oWord As Object 'Word.Application 
Dim oDoc As Object 'Word.Document 
Dim otable As Object
Dim iRow As Integer
 
Set oWord = CreateObject("Word.Application")
oWord.Options.ReplaceSelection = False
 
Set oDoc = oWord.Documents.Add("N:\APP\CUMPLES\IMAGENES\basecumple2.dot")
 
With oDoc.PageSetup
    .Orientation = wdOrientPortrait
    .PaperSize = wdPaperA4
    .VerticalAlignment = wdAlignVerticalCenter
End With
 
With poOraDynaset
    Set otable = oDoc.Tables.Add(oDoc.Bookmarks("\endofdoc").Range, .RecordCount, 3)
    If Not .RecordCount = 0 Then .MoveFirst
    Do Until .EOF
        iRow = iRow + 1
        otable.Cell(iRow, 1).Range.Text = MyCapitalize(CStr(.Fields("NOMBRE_COMPLETO")))
        otable.Cell(iRow, 2).Range.Text = CStr(.Fields("SECTOR"))
        otable.Cell(iRow, 3).Range.Text = Format(CStr(.Fields("FECHA_NACIMIENTO")), "dd/mmm")
        .MoveNext
    Loop
End With
 
On Local Error Resume Next
otable.Columns(1).Width = 200
otable.Columns(2).Width = 200
otable.Columns(3).Width = 50
otable.AutoFormat wdTableFormatGrid2, False, False, True, False, False, False, True, True, False
oDoc.SaveAs "c:\windows\escritorio\Cumpleanios_" & Me.cmbMes.Text
oWord.Visible = True
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder