Autor Thema: Vorlage Drucken ?!  (Gelesen 560 mal)

BetaX

  • Newbie
  • *
  • Beiträge
    : 2
Vorlage Drucken ?!
2018-05-10 10:22:21
Hallo zusammen,

ich habe eine Vorlage über Entwickler Tools erstellt. Nur soll diese auch ausgedruckt werden.

In dieser Vorlage sind mehrere Textfelder.

Leider wird beim Drucken nur der Inhalt gedruckt und nicht das Drumherum.

Kann mir da jemand helfen?

 
IP gespeichert

Werbung

BetaX

  • Newbie
  • *
  • Beiträge
    : 2
Re: Vorlage Drucken ?!
2018-05-16 09:28:42
Hallo zusammen,

ich bin schon mal einen schritt weiter gekommen.

Leider muss ich vorher noch die Tastenkombination ALT+Druck betätigen.

Kann mir jemand helfen dies in den Code einzufügen.


Sub cmdPrint_Click()
Set oWordApp = CreateObject("Word.Application")
If oWordApp Is Nothing Then
MsgBox "Couldn't start Word."
Else
Dim oWordApp
Dim oWordDoc
Dim oBMs
Dim bolPrintBackground
' Öffnen eines neuen Dokuments
Set oDoc = oWordApp.Documents.Add
' Setzen einer Objektvariable "Seite einrichten"
Set oPS = oDoc.PageSetup
' Reduzieren der Ränder auf 0,5 Zoll (36 Punkte)
oPS.TopMargin = 36
oPS.BottomMargin = 36
oPS.LeftMargin = 36
oPS.RightMargin = 36
' Einfügen des Bildschirmabbilds
oWordApp.Selection.Paste
' Zentrieren des Bildschirmabbilds
Const wdAlignParagraphCenter = 1
oDoc.Paragraphs(1).Alignment = wdAlignParagraphCenter
' Abrufen der aktuellen Word-Einstellung für Drucken im Hintergrund
bolPrintBackground = oWordApp.Options.PrintBackground
' Hintergrunddruck ausschalten
oWordApp.Options.PrintBackground = False
' Drucken des Word-Dokuments
oDoc.PrintOut
' Wiederherstellen der vorherigen Einstellung
oWordApp.Options.PrintBackground = bolPrintBackground
' Schließen des Dokuments ohne Speicherung von Änderungen
Const wdDoNotSaveChanges = 0
oDoc.Close wdDoNotSaveChanges
' Schließen der Word-Instanz
oWordApp.Quit
' Aufräumen
Set oPS = Nothing
Set oDoc = Nothing
Set oWordApp = Nothing
End If
End Sub


Auch das Word geöffnet wird und der screenshot eingefügt wird.

Danke vorab für eure Hilfe.
 
IP gespeichert

maninweb

  • Microsoft MVP
  • Supermoderator
  • Guru
  • *****
  • Beiträge
    : 1.202
  • Microsoft MVP
    • Excel-Translator
Re: Vorlage Drucken ?!
2018-05-18 10:38:36
Hallo,

neben einigen Korrekturen an dem Code, wie z.B. Variablendeklarationen, kann man einen Screenshot per API machen.
Allerdings habe ich das jetzt nicht in Outlook getestet. Versuche es mal damit...

Code: Visual Basic
  1. Option Explicit
  2.  
  3. Private Const KEYEVENTF_KEYUP         As Long = &H2
  4. Private Const VK_SNAPSHOT             As Long = &H2C
  5. Private Const VK_MENU                 As Long = &H12
  6.  
  7. Private Const wdAlignParagraphCenter  As Long = 1
  8. Private Const wdDoNotSaveChanges      As Long = 0
  9.  
  10. Private Declare PtrSafe Sub apiKeyboard Lib "user32" _
  11.         Alias "keybd_event" (ByVal bVk As Byte, ByVal bScan As Byte, _
  12.         ByVal dwFlags As Long, ByVal dwExtraInfo As LongPtr)
  13.  
  14. Sub CaptureScreen()
  15.  
  16.   Dim d As Date
  17.  
  18.   d = DateAdd("s", 2, Now)
  19.  
  20.   Do Until Now > d
  21.     DoEvents
  22.   Loop
  23.  
  24.   apiKeyboard VK_MENU, 0, 0, 0
  25.   apiKeyboard VK_SNAPSHOT, 0, 0, 0
  26.   apiKeyboard VK_SNAPSHOT, KEYEVENTF_KEYUP, 0, 0
  27.   apiKeyboard VK_MENU, 0, KEYEVENTF_KEYUP, 0
  28.    
  29. End Sub
  30.  
  31. Sub cmdPrint_Click()
  32.  
  33.   Dim oWordApp  As Object
  34.   Dim oWordDoc  As Object
  35.   Dim oWordPS   As Object
  36.  
  37.   Dim bWordPG  As Boolean
  38.  
  39.   On Error Resume Next
  40.  
  41. ' Screen...
  42.  
  43.   CaptureScreen
  44.  
  45. ' Word...
  46.  
  47.   Set oWordApp = CreateObject("Word.Application")
  48.  
  49.   If oWordApp Is Nothing Then
  50.    
  51.     MsgBox "Couldn't start Word."
  52.    
  53.   Else
  54.    
  55. '   Öffnen eines neuen Dokuments
  56.    Set oWordDoc = oWordApp.Documents.Add
  57.    
  58. '   Setzen einer Objektvariable "Seite einrichten"
  59.    Set oWordPS = oWordDoc.PageSetup
  60.    
  61. '   Reduzieren der Ränder auf 0,5 Zoll (36 Punkte)
  62.    oWordPS.TopMargin = 36
  63.     oWordPS.BottomMargin = 36
  64.     oWordPS.LeftMargin = 36
  65.     oWordPS.RightMargin = 36
  66.    
  67. '   Einfügen des Bildschirmabbilds
  68.    oWordApp.Selection.Paste
  69.    
  70. '   Zentrieren des Bildschirmabbilds
  71.    oWordDoc.Paragraphs(1).Alignment = wdAlignParagraphCenter
  72.  
  73. '   Abrufen der aktuellen Word-Einstellung für Drucken im Hintergrund
  74.    bWordPG = oWordApp.Options.PrintBackground
  75.    
  76. '   Hintergrunddruck ausschalten
  77.    oWordApp.Options.PrintBackground = False
  78.  
  79. '   Drucken des Word-Dokuments
  80.    oWordDoc.PrintOut
  81.  
  82. '   Wiederherstellen der vorherigen Einstellung
  83.    oWordApp.Options.PrintBackground = bWordPG
  84.  
  85. '   Schließen des Dokuments ohne Speicherung von Änderungen
  86.    oWordDoc.Close wdDoNotSaveChanges
  87.  
  88. '   Schließen der Word-Instanz
  89.    oWordApp.Quit
  90.    
  91. '   Aufräumen
  92.    
  93.     Set oWordPS = Nothing
  94.     Set oWordDoc = Nothing
  95.     Set oWordApp = Nothing
  96.    
  97.   End If
  98.  
  99. End Sub

Gruß
 
IP gespeichert

Werbung

 

An- und Abmeldung

 
 

Werbung