Excel und OLE

Für allgemeine Fragen zur Programmierung, welche nicht! direkt mit Lazarus zu tun haben.
Antworten
PeterK
Beiträge: 6
Registriert: Do 15. Sep 2011, 15:35

Excel und OLE

Beitrag von PeterK »

Hallo,

ich arbeite derzeit an OLE-Automation von Excel mit "Late Binding",
das meiste klappt mittlerweile, jetzt komme ich an einer Stelle aber
einfach nicht weiter da ich die ExcelXP.pas nicht besitze.

Vorweg: nix geht g'scheit mit OLE und EXCEL unter Lazarus 0.9.30.2 (Release)
daher verwende ich - gezwungenermaßen - einen aktuellen Snapshot.
(0.9.31 von 30.11.2011, mit Compiler 2.5.1)


---------------------------------------------------------------------------------------

Code: Alles auswählen

function ExcelSheetAddBottomFrameLine( var Sheet : OleVariant):integer;
var Selection : OleVariant;
    Border : OleVariant;
    Ole : OleVariant;
begin
  // from Excel Macro Recorder :
  //
  // Selection.Borders(xlDiagonalDown).LineStyle = xlNone
  // Selection.Borders(xlDiagonalUp).LineStyle = xlNone
  // Selection.Borders(xlEdgeLeft).LineStyle = xlNone
  // Selection.Borders(xlEdgeTop).LineStyle = xlContinuous
 
 
  Selection:= Sheet.Range[ 'A188:O188'].Select;   // works !
 
  //Ole:= OleVariant( 'xlEdgeTop');   
  Ole:= OleVariant( 1);
  Border:= Selection.Borders[ Ole];    // => Invalid variant operation
  ...
  ...
end;

--------------------------------------------------------------
REM:
Der Funktionsparameter "var Sheet : OleVariant" wird zugewiesen z.B .per
Sheet:= Excel.ActiveWorkbook.Sheets[1]; //ungetestet, Pseudocode ..
--------------------------------------------------------------


Die Zuweisung " Selection:= Sheet.Range[ 'A188:O188'].Select;"
klappt fehlerfrei, danach komme ich nicht weiter.
Die Konstanten xlEdgeTop, xlContinuous etc. kenne ich nicht
und daher schmeißt Excel immer den Fehler "Invalid variant operation"

Kennt jemand Typ + Wertebereich für die oben im Excel-Macro
aufgezeichneten Konstanten ?
Zuletzt geändert von Lori am Fr 9. Dez 2011, 15:37, insgesamt 1-mal geändert.
Grund: Highlighter

Jochen
Beiträge: 35
Registriert: So 30. Nov 2008, 23:35

Re: Excel und OLE

Beitrag von Jochen »

Ist ein wenig älter, aber schau mal hier: http://techsupt.winbatch.com/ts/T000001033005F9.html
Eine Suche nach 'Excel Constants' dürfte auch für neuere Versionen von Excel einige Treffer bringen.

PeterK
Beiträge: 6
Registriert: Do 15. Sep 2011, 15:35

Re: Excel und OLE

Beitrag von PeterK »

Jochen hat geschrieben:Ist ein wenig älter, aber schau mal hier: http://techsupt.winbatch.com/ts/T000001033005F9.html
Eine Suche nach 'Excel Constants' dürfte auch für neuere Versionen von Excel einige Treffer bringen.


Das ist fein, da kann ich ja mal mit den richtigen Konstanten probieren ob' geht.

Danke !

Antworten