Über diesen Fehler bin ich auch vor kurzen gestolpert:
Soviel ich das verstehe sind die zwei Ausdrücke $FFFFEFF5 und -4107 sind gleich sobald sie in einem DWord gespeichert werden;
Ich kann nicht genau sagen ab wann Excel die Änderung vorgenommen hat aber ab einer bestimmten Excel Version oder Update habe ich immer wieder diesen Fehler bekommen.
Ich habe ein Programm laufen das genau die alte Logik verwendet und seit Jahren im Einsatz ist.
Da das setzen der Ausrichtung in Try-Except Blöcken gesetzt ist wurde der Fehler auch lange nicht gefunden.
Vor der Änderung war es üblich die Konstante in einem DWord zu speichern und als TOleEnum an Excel zu senden:
Delphi-Quellcode:
SetHAlign_Center(Range:Variant);
var HAlign : DWord;
begin
HAlign := $FFFFEFF5;
Range.HorizontalAlignment := TOleEnum(HAlign);
end;
Irgendwann wurde die Logik auf 64Bit umgestellt und die Konvertierung funktionierte so nicht mehr.
Jetzt akzeptiert Excel nur mehr Integers:
Delphi-Quellcode:
SetHAlign_Center(Range:Variant);
var HAlign : Integer;
begin
HAlign := -4107;
Range.HorizontalAlignment := HAlign;
end;