Halmi
danke für Eure Antworten!
Zu André:
Ich habe den Code entsprechend angepasst, jedoch bleibt es bei der Stelle: ,,Set olMapiFolder = GetObject("", "olMapiFolderlook.Application").GetNamespace("Mapi"). GetDefaultFolder(olFolderInbox).Folders("TEST")" wieder stehen.
Ich kann mir vorstellen, dass dies eventuell an der Namensberzeichnung vom Ordner und seiner Position liegt. Der Name des zu löschenden Ordners ist ,,TEST", wie oben, allerdings befindetet sich dieser in einem Unterordner. Kann es daran liegen? Zudem gibt es an der Sache noch ein Problem, wenn der Ordner fest definiert werden muss. Ich wollte das ganze eigentlich variabel halten, also so, dass der Aktuell angewählte Ordner(der in dem man sich befindet) für den Löschvorgang ausgewählt wird.
Hast du da auch noch eine Idee, wie man das Problem beheben könnte?
Zu René:
Danke, dass du das alte Thema nochmal aufgreifst. Allerdings verstehe ich das nicht ganz so. Muss ich in dem folgendem Code einfach "PrintOut" durch ExportAsFixedFormat mit den dazugehörigen angaben ersetzen? Ich habe das mal durch Klammern ([[ ]]) gekennzeichnet. [url=https://msdn.microsoft.com/de-de/vba/word-vba/articles/document-exportasfixedformat-method-word][/url]
Code:
Option Private Module
Option Explicit
Public Sub PrintAPageFromEmail(Optional wdPrintOut As Boolean = True, _
Optional printCopies As Integer = 1, _
Optional startPage As String = "1", _
Optional endPage As String = "1", _
Optional closeDoc As Boolean = True, _
Optional quitWDApp As Boolean = True, _
Optional wdPrintAll As Boolean = False, _
Optional wdPrinter As String)
Dim Ins As Outlook.Inspector
Dim obj As Outlook.MailItem
Dim wdApp As Word.Application
Dim wdDoc As Word.Document
Dim wdRange As Word.Range
Dim wdOldPrinter As String
Select Case True
Case TypeOf Application.ActiveWindow Is Outlook.Inspector
Set obj = Application.ActiveInspector.CurrentItem
Case Else
With Application.ActiveExplorer.Selection
If .Count Then Set obj = .Item(1)
End With
If obj Is Nothing Then Exit Sub
End Select
Set Ins = obj.GetInspector
Set wdDoc = Ins.WordEditor
Set wdRange = wdDoc.Range
wdRange.WholeStory
wdRange.Copy
Set wdApp = New Word.Application
With wdApp
.Visible = True
wdOldPrinter = .ActivePrinter
If wdPrinter <> "" Then .ActivePrinter = wdPrinter
.Documents.Add
With .ActiveDocument
If Not wdDoc Is Nothing Then
.PageSetup.RightMargin = 42.55
.PageSetup.LeftMargin = 42.55
.PageSetup.TopMargin = 70.85
.PageSetup.BottomMargin = 56.7
End If
.Range(0, 0).Paste
If wdPrintOut Then
If wdPrintAll Then
[[ .PrintOut copies:=printCopies ]]
Else
[[[ .PrintOut copies:=printCopies, Range:=wdPrintFromTo, _
From:=CStr(startPage), To:=CStr(endPage) ]]]
End If
End If
If closeDoc Then
.Close SaveChanges:=False
End If
End With
.ActivePrinter = wdOldPrinter
If quitWDApp Then
.Quit
End If
End With
End Sub
Gruß Lukas