Jump to content

Recommended Posts

Posted (edited)

Hello water,

Thank you for answering.

I know that $olMSGUnicode is a constant. But in _OL_ItemSave, I have to set $itype ? It is not optional, or is it?

Quote

_OL_ItemSave($oOL, $vItem, $sStoreID, $sPath, $iType[, $iFlags = 1])

$iType    - The file type to save. Is defined by the Outlook OlSaveAsType enumeration

When I save the mail, I always get msg files. When I save it twice, I get two msg files with different sizes (i.e. 198 kb and 199 kb). When I open the first msg file, it is displayed as plain text (no formatted text, no logos, etc.). The second (and all further msg-files of this mail) is displayed normally as HTML.

Really strange in my opinion. I'm not sure this is an AutoIt or OutlookEX problem, but I need a workaround.

Greetings

Matthias

Edited by corbeau56
Posted (edited)

Could you please create a stripped down reproducer script?
If this works we can sort out AutoIt and the OutlooKEX UDF.

; Manually select a mail item to save
_OL_FolderSelectionGet
_OL_ItemSave
MsgBox ; So you can check the result of ItemSave
_OL_ItemSave

BTW:
Which version of Outlook and OutlookEX (please see variable $__g_sVersionOutlookEX in the UDF) do you run?

Edited by water

My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts
OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download
Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki
PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki
Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki

Standard UDFs:
Excel - Example Scripts - Wiki
Word - Wiki

Tutorials:
ADO - Wiki
WebDriver - Wiki

 

Posted (edited)
5 hours ago, water said:

Could you please create a stripped down reproducer script?
If this works we can sort out AutoIt and the OutlooKEX UDF.

; Manually select a mail item to save
_OL_FolderSelectionGet
_OL_ItemSave
MsgBox ; So you can check the result of ItemSave
_OL_ItemSave

BTW:
Which version of Outlook and OutlookEX (please see variable $__g_sVersionOutlookEX in the UDF) do you run?

I am using 

Quote

Global $__g_sVersionOutlookEX = "OutlookEX: 1.7.0.1 2022-08-21"

A stripped down script might be:

#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Outfile_x64=Projektwahl.exe
#AutoIt3Wrapper_UseX64=y
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#cs ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 AutoIt Version:             3.3.14.5
 Autor:                      Matthias Weber
 Version:                    1.2
#ce ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
#include <WinAPI.au3>
#include <OutlookEX.au3>
#include <File.au3>
#include <Array.au3>
#include <WinAPIFiles.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <Constants.au3>
Const $win_Outlook = "rctrl_renwnd32" ;     Fensterklasse Outlook Anwendung
Global $fclass, $fhandle
HotKeySet("^{NUMPADDOT}", "Mailablage")
;Endlosschleife hält Skript im Hintergrund am Leben
While 1
    Sleep(5)
WEnd
; ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
; Funktion Mailablage, ausgelöst durch STRG-Komma (Zehnerblock) oder STRG-ä
Func Mailablage()
    Local $pfad, $i_abs
    ; frage Handle und Class des aktuellen Fensters ab
    $fhandle = WinGetHandle("[ACTIVE]")
    $fclass = _WinAPI_GetClassName($fhandle)
    ; falls Outlook-Fenster
    If $fclass = $win_Outlook Then
        ; Verbindung zu Outlook öffnen
        Local $oOutlook = ObjGet("", "Outlook.Application")
        ; nur wenn Verbindung zu Outlook gelingt
        If IsObj($oOutlook) Then
            ; Verbindung zum ausgewählten Objekt öffnen (das, welches gerade in Outlook markiert ist)
            Local $aReturn = _OL_FolderSelectionGet($oOutlook)
            ; abfragen, von welchem Typ es ist (Mail, Kontakt, Termin...)
            Local $olClass = _OL_ItemGet($oOutlook, $aReturn[1][1], Default, "MessageClass")[1][1]
            ; nur wenn das Item eine Mail ist
            If $olClass = "IPM.Note" Then
                Local $dateiname= "C:\Temp\Test.msg"
                ; dann Mail speichern
                Local $olEntryID = _OL_ItemGet($oOutlook, $aReturn[1][1], Default, "EntryID")[1][1]
                _OL_ItemSave($oOutlook, $olEntryID, Default, $dateiname, $olMsg, 1)
                ;  falls Fehler beim Speichern: Fehlercode anzeigen
                If @error <> 0 Then MsgBox(0, "Error while saving. Code: ", @error)
            EndIf
        Else
            ; Verbindung zu Outlook fehlgeschlagen
            MsgBox(0, "!!!", "No connection to Outlook!")
        EndIf
        ; If (aktuelles Fenster ist Outlook)
    EndIf
EndFunc   ;==>Mailablage

This minimal script shows the same behaviour. _OL_ItemSave does not report any error, but the first saved msg file is still "corrupt", all other saves msg files are ok. By the way: when I select a "corrupt" msg-file in Windows Explorer and activate the preview window then the mail is shown correctly as formatted text. When I doubleclick it to open it, it shows plain text. Really confusing.

By the time, I replaced all OutlookEX functions by raw functions or properties, and now it seems to work (all saved msg files are displayed as HTML when opened again). Here is my modified script, which works without #include <OutlookEX.au3>. 

; Funktion Mailablage, ausgelöst durch STRG-Komma (Zehnerblock) oder STRG-ä
Func Mailablage()
    Local $pfad, $i_abs
    ; frage Handle und Class des aktuellen Fensters ab
    $fhandle = WinGetHandle("[ACTIVE]")
    $fclass = _WinAPI_GetClassName($fhandle)
    ; falls Outlook-Fenster
    If $fclass = $win_Outlook Then
        ; Verbindung zu Outlook öffnen
        Local $oOutlook = ObjGet("", "Outlook.Application")
        ; nur wenn Verbindung zu Outlook gelingt
        If IsObj($oOutlook) Then
            ; Objekt des ausgewählten Items holen (das, welches gerade in Outlook markiert ist)
            Local $oItem = $oOutlook.ActiveExplorer.Selection.Item(1)
            ; abfragen, von welchem Typ es ist (Mail, Kontakt, Termin...)
            ; nur wenn das Item eine Mail ist (Objekttyp 43)
            If $oItem.Class = 43 Then
                ; ermittele wichtige Eigenschaften der Mail
                Local $olSender = $oItem.ItemProperties.Item("SenderEmailAddress").Value
                Local $olDate = $oItem.ItemProperties.Item("CreationTime").Value
                Local $olSubject= $oItem.ItemProperties.Item("Subject").Value
                ; prüfen, ob schon gespeichert
                $i_abs = _ArraySearch($projekterkennung, $olSender, 0, 0, 0, 0, 1)
                If $i_abs > 0 Then
                    ; wenn gefunden, dann PN im Combo speichern und als Default setzen
                    GUICtrlSetData($Combo_PN, $projekterkennung[$i_abs][1], $projekterkennung[$i_abs][1])
                    ; Labeltext anpassen und auf grün umstellen
                    GUICtrlSetData($Label_PN, "Projektnummer aus Absender erkannt:")
                    GUICtrlSetColor($Label_PN, 0x107C10)
                Else
                    ; Labeltext anpassen und auf schwarz umstellen
                    GUICtrlSetData($Label_PN, "Bitte Projektnummer eingeben oder auswählen:")
                    GUICtrlSetColor($Label_PN, 0x000000)
                EndIf
                ; Hole Projektnummer
                $pfad = GetProj()
                ; nur wenn Eingabe erfolgt
                If $pfad <> "" Then
                    ; wenn Absender "@xxx.de" enthält, dann ersetze Absender durch "xxx"
                    If (StringInStr($olSender, "@xxx.de") > 0 Or StringInStr($olSender, "/o=XXX/") > 0) Then
                        Local $absender = "xxx"
                    Else
                        Local $absender = $olSender
                    EndIf
                    ; ermittele Sendedatum der Mail und formatiere es richtig
                    Local $datum = StringLeft($olDate, 4) & "-" & StringMid($olDate, 5, 2) & "-" & StringMid($olDate, 7, 2)
                    ; ermittele Betreff der Mail und lösche unzulässige Zeichen
                    ; zum Entfernen von Backslash und Anführungszeichen müssen diese innerhalb der eckigen Klammern doppelt stehen!
                    Local $betreff = StringRegExpReplace($olSubject, "[<>/\\|?*:,;""]", "")
                    ; Mehrfachleerzeichen durch Einfachleerzeichen ersetzen, ggf. mehrfach
                    While StringInStr($betreff, "  ") > 0; solange ein doppeltes Leerzeichen gefunden wird
                        $betreff = StringRegExpReplace($betreff, "  ", " "); ersetze doppeltes Leerzeichen durch einfaches Leerzeichen
                    WEnd
                    ; alle Leerzeichen durch Unterstriche ersetzen
                    $betreff = StringRegExpReplace($betreff, " ", "_")
                    ; überlange Betreffzeilen kürzen
                    If StringLen($betreff) > 50 Then $betreff = StringLeft($betreff, 30) & "..." & StringRight($betreff, 17)
                    Local $nproj = StringRight($pfad, 5)
                    ; Variable pfad erweitern, neue Ordnerstruktur ab 16300 berücksichtigen
                    If Number($nproj) >= 16300 Then
                        $pfad = $pfad & "\Kommunikation\"
                    Else
                        $pfad = $pfad & "\Faxe_E-Mails\"
                    EndIf
                    ; Prompt für Dateinamen (Vorschlag) erzeugen
                    Local $prompt = $nproj & "_" & $datum & "_" & $absender & "_" & $betreff & ".msg"
                    ; endgültigen Dateinamen über Standarddialog holen, dabei $prompt als Vorschlag anbieten
                    Local $dateiname = FileSaveDialog("ifb-Mail speichern (c)ifb(Wb) 2020-2023", $pfad, "Outlook-Nachrichtenformat - Unicode (*.msg)", 0, $prompt)
                    ; falls nicht Escape gewählt
                    If $dateiname <> "" Then
                        ; Dateinamen auf schon vorhanden prüfen und ggf. anpassen (externe Funktion)
                        $dateiname = NextMsgFilename($dateiname)
                        ; dann Mail speichern (9 = Dateityp msg UniCode)
                        $oItem.SaveAs($dateiname, 9)
                        ;  falls Fehler beim Speichern: Fehlercode anzeigen
                        If @error <> 0 Then MsgBox(0, "Fehler beim Speichern! Fehlercode: ", @error)
                        ; Absender, zugehörige PN und Datum in SQL-Datenbank speichern, aber nur, wenn es nicht "ifb" ist
                        If $absender <> "ifb" Then SQL_AddItem($absender, $nproj, $datum)
                        ; setze Kategorie der Mail in Outlook auf "gespeichert"
                        $oItem.ItemProperties.Item("Categories").Value = "gespeichert"
                        ;  falls Fehler beim Ändern der Kategorie: Fehlercode anzeigen
                        If @error <> 0 Then MsgBox(0, "Fehler beim Ändern der Kategorie! Fehlercode: ", @error)
                    Else
                        ; in der Dateiauswahl Esc bzw. Abbrechen gewählt --> Warnhinweis anzeigen
                        MsgBox(0, "Wb informiert:", "E-Mail wurde nicht gespeichert!")
                    EndIf
                    ; If (Projektnummer eingegeben)
                EndIf
                ; If (Mail-Item ausgewählt)
            EndIf
        Else
            ; Verbindung zu Outlook fehlgeschlagen
            MsgBox(0, "Wb informiert:", "Verbindung zu Outlook nicht möglich!" & Chr(10) & "Passiert i.A. kurz nach dem Starten von Outlook." & Chr(10) & "Bitte kurz warten und nochmal versuchen.")
        EndIf
        ; If (aktuelles Fenster ist Outlook)
    EndIf
EndFunc   ;==>Mailablage

Greetings

Matthias

Edited by corbeau56
Posted

Werde ich prüfen, sobald ich etwas Zeit finde und Outlook unter Windows 11 🥵 korrekt funktioniert!

My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts
OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download
Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki
PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki
Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki

Standard UDFs:
Excel - Example Scripts - Wiki
Word - Wiki

Tutorials:
ADO - Wiki
WebDriver - Wiki

 

  • 1 month later...
Posted

I checked the code high and low but could not find an error nor could I reproduce your problem. As you have a working script right now I suggest to stay with your version of _OL_ItemSave.
If another problem with this function arises we can give it another go.

My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts
OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download
Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki
PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki
Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki

Standard UDFs:
Excel - Example Scripts - Wiki
Word - Wiki

Tutorials:
ADO - Wiki
WebDriver - Wiki

 

  • 1 year later...
Posted

Some tests with the FlagStatus property

#include <OutlookEX.au3>

Global $oOutlook = _OL_Open()
If @error <> 0 Then Exit MsgBox(16, "OutlookEX UDF", "Error creating a connection to Outlook. @error = " & @error & ", @extended = " & @extended, 5)

;~ Global $aInboxFA = _OL_FolderAccess($oOutlook, "*\Bandeja de entrada", $olFolderInbox)
Global $aInboxFA = _OL_FolderAccess($oOutlook, "*\Bandeja de entrada")
If @error <> 0 Then Exit MsgBox(16, "", "_OL_FolderAccess returned an error. @error = " & @error & "@extended = " & @extended & ". Exiting.", 5)
;_ArrayDisplay($aInboxFA, "_OL_FolderAccess")

Global $sFilter = "[UnRead]=True"
;https://learn.microsoft.com/es-es/office/vba/api/outlook.mailitem.flagrequest
;Global $sFilter = "[FlagRequest] = 'Seguimiento'"
;Global $sFilter = "[FlagStatus] = 1" ;0 Sin marca, 1 Completado
;Global $sFilter = "[FlagStatus] <> 1" ;All except completed  ;0 Sin marca, 1 Completado
;https://stackoverflow.com/questions/43987699/vba-replacement-for-flag-status
;According to documentation, the MailItem.FlagStatus property in Outlook is deprecated ...
;Global $sFilter = "[TaskDueDate] = '01/07/2026'" ;Marked for today or Completed
;Global $sFilter = "[TaskDueDate] = ''" ;All except marked
;DASL filter query:
;https://www.devhut.net/vba-search-outlook-emails-items/
;https://learn.microsoft.com/en-us/previous-versions/office/developer/exchange-server-2007/aa579702(v=exchg.80)
;Global $sFilter = "@SQL=""urn:schemas:httpmail:subject"" like '%F%'"
;Global $sFilter = "@SQL=""urn:schemas:httpmail:datereceived"" > '2026-20-06 00:00:00'"
;https://learn.microsoft.com/en-us/previous-versions/office/developer/exchange-server-2007/aa564753(v=exchg.80)
;Global $sFilter = "@SQL=""urn:schemas:httpmail:messageflag"" = 'Seguimiento'"
;Global $sFilter = "@SQL=""urn:schemas:httpmail:messageflag"" <> 'Seguimiento'" ;OK TODOS EXCEPTO MARCADOS

;https://www.autoitscript.com/forum/topic/200528-solved-how-do-i-limit-my-_ol_itemfind-to-just-the-inbox-emails-and-not-include-ones-in-the-inboxs-sub-folders/
;To exclude subfolders in _OL_ItemFind, set the Include subfolders parameter (the 9th parameter) to 0. By default, this is set to 1, causing the function to search both the root folder and any nested directories.
;~ ;Global $aItems = _OL_ItemFind($oOutlook, "*\Bandeja de entrada", $olMail, "[UnRead]=True", "Subject", "Some text", "EntryID,Subject", "", 0)
Global $aItems = _OL_ItemFind($oOutlook, $aInboxFA[1], $olMail, $sFilter, "", "", "EntryID,Subject,IsMarkedAsTask", "", 0)
If @error Then Exit MsgBox(16, "Item Find", "_OL_ItemFind Error finding items. @error = " & @error, 5)
;If Not IsArray($aItems) Then Exit MsgBox(16, "Item Find", "No mail found or error, @error = " & @error, 5)
;If $aItems[0][0] = 0 Then Exit MsgBox(64, "_OL_ItemFind", "No emails found", 5)
_ArrayDisplay($aItems, "_OL_ItemFind")
;ConsoleWrite($aItems[1][2] & @crlf)
;~ For $i = 1 To $aItems[0][0]
;~  Global $oItem = _OL_ItemGet($oOutlook, $aItems[$i][0], Default, "Subject,FlagRequest,FlagIcon,FlagStatus")
;~  _ArrayDisplay($oItem, "_OL_ItemFind")
;~  ;ConsoleWrite("Subject: " & $oItem[2][1] & @TAB & $oItem[1][1] & @CRLF)
;~ Next

For $i = 1 To $aItems[0][0]
    ;Google: OUTLOOK VBA FILTER IsMarkedAsTask
    ;https://stackoverflow.com/questions/52844424/how-to-return-task-status-from-a-mail-item
    ;niton, Sep 21, 2020
    ; https://learn.microsoft.com/en-us/previous-versions/office/developer/office-2010/bb644164(v=office.14)
    ; Still could be good for decades
    ;   0 - olNoFlag
    ;   1 - olFlagComplete  Marca completada (icono de marca de verificación).
    ;   2 - olFlagMarked  (Bandera Roja)
    Global $oItem = _OL_ItemGet($oOutlook, $aItems[$i][0], Default, -1)

    If $oItem.IsMarkedAsTask Then
        ConsoleWrite($oItem.FlagIcon & @TAB & $oItem.IsMarkedAsTask & @TAB & $oItem.FlagStatus & @TAB & $oItem.FlagRequest & @TAB & $oItem.Subject & @CRLF)

        ;Propiedad MarkAsTask
        ;niton, Dec 9, 2023
        ;https://stackoverflow.com/questions/77521722/set-email-due-date-using-outlook-vba
        ;From OlMarkInterval enumeration (Outlook)
        ;https://learn.microsoft.com/en-us/office/vba/api/outlook.olmarkinterval
        ;Specifies the time period for which an Outlook item is marked as a task.
        ;Name          Value   Description
        ;olMarkComplete  5   Mark the task as complete.
        ;olMarkNextWeek  3   Mark the task due next week.
        ;olMarkNoDate    4   Mark the task due with no date.
        ;olMarkThisWeek  2   Mark the task due this week.
        ;olMarkToday     0   Mark the task due today.
        ;olMarkTomorrow  1   Mark the task due tomorrow.
        ;$oItem.FlagStatus = 1  ;OK
        _OL_ItemModify($oOutlook, $oItem, "", "FlagStatus=1")   ;OK
        ;$oItem.MarkAsTask = 5  ;NOT WORKING
        ;_OL_ItemModify($oOutlook, $oItem, "", "MarkAsTask=5")  ;NOT WORKING
    EndIf
Next

_OL_Close($oOutlook)

 

Posted

Thanks for your contribution :) but I'm not sure what do with your test results:

  • Is this post for a user who had a question regarding the FlagStatus property?
  • Should I add the listed constants to the UDF?
  • Something else?


 

My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts
OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download
Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki
PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki
Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki

Standard UDFs:
Excel - Example Scripts - Wiki
Word - Wiki

Tutorials:
ADO - Wiki
WebDriver - Wiki

 

Posted (edited)

Dear water,

 

First many thanks for your amazing work.

 

As a beginner with the Outlook UDF, i've found a lot of examples. But trying to filter emails not marked as completed (and then changing their mark after saving attachments) took me several hours of trial and error. I don't think i understand this completely, but at least get the job done :)

 

Seems that the FlagStatus property is deprecated and is not intended to be used. "It has been replaced by the category and task systems, and standard flags are managed through native Outlook actions." (from Google). There is a IsMarkedAsTask property but seems that cannot be used as filter.

 

  • How could we filter these emails (not marked as completed) with an alternative to FlagStatus?
  • What would be the best option for marking emails as completed?
  • Can MarkAsTask be chanded for email items with _OL_ItemModify function?

 

I expected this would work, but seems to fail:

_OL_ItemModify($oOutlook, $oItem, "", "MarkAsTask=5")

The MarkAsTask method converts an Outlook item (such as an email) into a follow-up task. When applied, the IsMarkedAsTask property changes to True, and other properties (such as the flag icon) are automatically updated using the OlMarkInterval constant. (from Google)

 

Thanks!

Edited by robertocm
Posted

Dear Robertocm,

I had a quick look at the OutlookEx UDF and noticed, that there is only a single function available to work with "follow-up tasks": _OL_Item2Task
Seems that not many users had the need for this or further functions.

So I need to do some investigation and create functions to query and modify "follow-up tasks".
I think I found some good VBA code to query such tasks and hope to come up with a AutoIt function quite soon.

Please stay tuned ;) 

My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts
OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download
Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki
PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki
Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki

Standard UDFs:
Excel - Example Scripts - Wiki
Word - Wiki

Tutorials:
ADO - Wiki
WebDriver - Wiki

 

Posted
7 hours ago, water said:

I had a quick look at the OutlookEx UDF and noticed, that there is only a single function available to work with "follow-up tasks": _OL_Item2Task

Seems to fail with emails, but doesn't report @error codes

_OL_Item2Task($oOutlook, $oItem, Default, 5)    ;FAILS
    If @error <> 0 Then MsgBox(16, "OutlookEX UDF", "Error _OL_Item2Task @error = " & @error & "@extended = " & @extended, 5)

 

Posted

It seems to be invalid to create a "follow-up task" and set it to "completed" in one go.

My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts
OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download
Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki
PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki
Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki

Standard UDFs:
Excel - Example Scripts - Wiki
Word - Wiki

Tutorials:
ADO - Wiki
WebDriver - Wiki

 

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...