tutorials.de Buch-Aktion 05/2012
Like Tree2Danke
  • 1 Beitrag von HonniCilest
  • 1 Beitrag von HonniCilest
ERLEDIGT
JA
ANTWORTEN
8
ZUGRIFFE
1233
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Ryan1991 Ryan1991 ist offline Mitglied
    Registriert seit
    Aug 2011
    Beiträge
    14
    Hallo
    Ich habe ein Problemchen mit einem Outlook 2010 Makro-Skript.

    Ich würde gerne über ein neues Menüband ein Makro hinterlegen, das mit in einer Email nicht nur eine Datei anhängt, sondern auch z.B "Anhang: Dateiname.Dateiendung"
    in den Email-Text einträgt.

    Ich hoffe mir kann jemand helfen,
    ich habe leider keine Ahnung von VBA...

    MfG
    Ryan1991
     

  2. #2
    Avatar von HonniCilest
    HonniCilest HonniCilest ist offline Mitglied Platin
    Registriert seit
    Jun 2009
    Ort
    Java Insel
    Beiträge
    501
    Das könnte etwa so aussehen:
    Code :
    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    
    Private Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long
     
    Private Type OPENFILENAME
        lStructSize As Long
        hwndOwner As Long
        hInstance As Long
        lpstrFilter As String
        lpstrCustomFilter As String
        nMaxCustFilter As Long
        nFilterIndex As Long
        lpstrFile As String
        nMaxFile As Long
        lpstrFileTitle As String
        nMaxFileTitle As Long
        lpstrInitialDir As String
        lpstrTitle As String
        flags As Long
        nFileOffset As Integer
        nFileExtension As Integer
        lpstrDefExt As String
        lCustData As Long
        lpfnHook As Long
        lpTemplateName As String
    End Type
     
    Public Function MyOpenFiledialog() As String
        Dim MyDialog As OPENFILENAME
        
        MyDialog.lStructSize = Len(MyDialog)
        MyDialog.lpstrFilter = "Text Files (*.txt)" + Chr$(0) + "*.txt" + Chr$(0) + "All Files (*.*)" + Chr$(0) + "*.*" + Chr$(0)
        MyDialog.lpstrFile = Space$(254)
        MyDialog.nMaxFile = 255
        MyDialog.lpstrFileTitle = Space$(254)
        MyDialog.nMaxFileTitle = 255
        MyDialog.lpstrInitialDir = "C:\"
        MyDialog.lpstrTitle = "Open File"
        MyDialog.flags = 0
        
        If GetOpenFileName(MyDialog) Then
            MyOpenFiledialog = Trim$(MyDialog.lpstrFile)
        Else
            MyOpenFiledialog = vbNullString
        End If
    End Function
     
    Public Sub MyAttach()
        Set myItem = Application.CreateItem(olMailItem)
        Set myAttachments = myItem.Attachments
        myFile = MyOpenFiledialog()
        myAttachments.Add myFile
        myItem.Body = "Anhang: " & myFile
        myItem.Display
    End Sub
    Ryan1991 bedankt sich. 
    Jeder Fehler, aus dem wir lernen, ist ein Erfolg...
    ...Aber mach' nicht den Fehler, nicht aus deinen Fehlern zu lernen.

  3. #3
    Ryan1991 Ryan1991 ist offline Mitglied
    Registriert seit
    Aug 2011
    Beiträge
    14
    Hay Honni,
    Vielen dank für deine Hilfe.
    Ich habe den Quellcode mal ausprobiert, und dierekt den ersten auftretenden Fehler: "Private Declare Function GetOpenFileName Lib "comdlg32.dll"" behoben, da ich eine 64-bit version von Outlook verwende.

    Nun tritt leider ein neuer Fehler auf, mit dem ich nicht zurecht komme... -.-


    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    
    Public Sub MyAttach()
        Set myItem = Application.CreateItem(olMailItem)
        Set myAttachments = myItem.Attachments
        myFile = MyOpenFiledialog() <<< Fehler: -2147024893 (80070003)': Der Pfad ist nicht vorhanden...
        myAttachments.Add myFile
        myItem.Body = "Anhang: " & myFile
        myItem.Display
    End Sub

    Vielleicht kannst du mir da ja noch einmal helfen?!
    Oder jemand anderes?!

    Schonmal Danke im vorraus
    MfG
    Ryan1991
     

  4. #4
    Avatar von HonniCilest
    HonniCilest HonniCilest ist offline Mitglied Platin
    Registriert seit
    Jun 2009
    Ort
    Java Insel
    Beiträge
    501
    Ich kann an der Stelle auch nichht mehr als nach dem Fehler zu googlen, denn bei mir funktioniert es. Das sieht aber auf den ersten Blick zutreffend aus:
    http://support.microsoft.com/kb/238956/de
     
    Jeder Fehler, aus dem wir lernen, ist ein Erfolg...
    ...Aber mach' nicht den Fehler, nicht aus deinen Fehlern zu lernen.

  5. #5
    Ryan1991 Ryan1991 ist offline Mitglied
    Registriert seit
    Aug 2011
    Beiträge
    14
    hmm,
    eine 32-bit Version von Outlook 2010 würde alles viel leichter machen ;D
    So wie ich das sehe, ist der SMTP-pickup-Verzeichnis-Pfad falsch...
    Jetzt ist das problem, ich nutze nicht IIS, sondern das läuft alles über einen Exchange Server.
    ...
     

  6. #6
    Ryan1991 Ryan1991 ist offline Mitglied
    Registriert seit
    Aug 2011
    Beiträge
    14
    hmm...
    es öffnet sich einfach nicht das Dialog fenster, wo man die jeweilige datei aussuchen kann...
    Desshalb beschwert sich der Compiler auch, das er den Pfad nicht findet, denn beim debuggen habe ich gesehen, das er einfach in der Funktion auf "else" springt und dann die Datei leert, somit kann es auch keinen pfad in der myfile variable geben...

    Nun ist die frage, wie muss ich den quelltext auf Outlook 2010 64 bit Basis umschreiben, damit sich das fenster öffnet?!

    MfG
    Ryan1991
     

  7. #7
    Avatar von HonniCilest
    HonniCilest HonniCilest ist offline Mitglied Platin
    Registriert seit
    Jun 2009
    Ort
    Java Insel
    Beiträge
    501
    Laut Google folgende Zeilen:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    
    Private Declare PtrSafe Function GetOpenFileName Lib "comdlg32.dll" _
        Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Boolean
     
    hwndOwner As LongPtr
    hInstance As LongPtr
    lpfnHook As LongPtr
     
    MyDialog.lStructSize = LenB(MyDialog)
    Geändert von HonniCilest (28.09.11 um 10:37 Uhr) Grund: zu ändernde Zeile hinzugefügt
    Ryan1991 bedankt sich. 
    Jeder Fehler, aus dem wir lernen, ist ein Erfolg...
    ...Aber mach' nicht den Fehler, nicht aus deinen Fehlern zu lernen.

  8. #8
    Ryan1991 Ryan1991 ist offline Mitglied
    Registriert seit
    Aug 2011
    Beiträge
    14
    Juhuu, es Funktioniert (teilweise)

    Wenn ich jetzt compiliere, bekomme ich die Dateiauswahl, kann eine datei auswählen, aber der erstellt immer eine neu Email...
    ist es auch machbar das man das Menüband nur in der geöffneten email (die z.B gerade geschrieben wurde) verwenden kann?!
    so wie beim normalen "Datei anfügen"
     

  9. #9
    Ryan1991 Ryan1991 ist offline Mitglied
    Registriert seit
    Aug 2011
    Beiträge
    14
    Hat sich schon erledigt!

    Jetzt muss der eingefügte Text nur noch an die Cursorposition, damit mir nicht immer die ganze Email, samt Signatur gelöscht wird.

    Honni Ich danke dir für deine Geduld mit mir ;D
     

Ähnliche Themen

  1. JPG-Datei aus einer großen Datei auslesen bzw. an diese anhängen
    Von jabonva im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 6
    Letzter Beitrag: 14.03.07, 22:54
  2. Antworten: 6
    Letzter Beitrag: 09.08.06, 09:39
  3. email mit mehreren anhängen
    Von LiThiUm-FX im Forum PHP
    Antworten: 4
    Letzter Beitrag: 05.01.06, 02:36
  4. Text anhängen
    Von Sealtuagn im Forum Javascript & Ajax
    Antworten: 1
    Letzter Beitrag: 28.05.05, 16:35
  5. Text an RTF Box anhängen
    Von LJerch im Forum Visual Basic 6.0
    Antworten: 2
    Letzter Beitrag: 05.04.04, 10:41