Hallo @HemSA,
ich habe nun eine Lösung, die in ComatePlus vorhanden ist, gefunden. Es lag bei mir an den Parametern.
Nun müsste man wissen, wie ds #opt (optional) in ComatePlus auf den Disphelper übertragbar ist. Ich steig da zwar
selber nicht durch, aber es scheint ein Platzhalter zu sein, der ignoriert wird. Falls einige es wissen, würde ich mich freuen,
wie man dieses in den Disphelper anpassen kann. Auf jeden Fall Steht das #True für den Parameter ReadOnly eine Stelle weiter. 
Darum klappte es bei mir nicht 
Vielleicht kriegst du das in Disphelper nach Vergleich zu ComatePlus nun auch hin. LG, Falko.
Hier nun der Schnipsel:
Code: Alles auswählen
Procedure.l XLSFunc_OpenExcelFile(Datei.s,ReadOnly.l=#False); Open ExcelFile with ReadOnly-Parameter, #True or #False
  Protected ExcelObject.COMateObject,Workbooks
  ExcelObject = COMate_CreateObject("Excel.Application")
  If ExcelObject
    If ReadOnly=#False
      ExcelObject\Invoke("Workbooks\Open('"+Datei+"',#opt, #False)"); The first open Excelfile is not ReadOnly
    ElseIf ReadOnly=#True
        ExcelObject\Invoke("Workbooks\Open('"+Datei+"',#opt, #True)"); The first open Excel is ReadOnly
    EndIf    
        
  Else
    MessageRequester("Achtung","Bitte geben Sie eine vorhandene xls-Datei mit Pfad an!")
  EndIf
  ProcedureReturn ExcelObject ;.COMateObject
EndProcedure
So wird nun die erst geöffnete Exceldatei nun Schreibgeschützt geöffnet.
[Edit] Ich habe die Funktion nochmal geändert, sodass in ComatePlus nur eine Procedure vorhanden ist.
Somit ist es nun möglich die erste Exceldatei mittels einem #True gleich Schreibgeschützt zu öffnen.
[/Edit]