OLE Automatition mit Excel: Rahmen der Felder verändern GELÖST
-
Hi
Ich möchte per OLE Excel dazu bewegen bei einer Auswahl von Felder unten eine Linie zu zeichnen. Komplett eine ganzes Feld im Rahmen setzen kann ich. Nur eine einzelne Linie macht mir Probleme. Über den MakroRekorder kam ich auf folgenden Code:
Range("F13:J13").Select Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone Selection.Borders(xlEdgeLeft).LineStyle = xlNone Selection.Borders(xlEdgeTop).LineStyle = xlNone With Selection.Borders(xlEdgeBottom) // Wie heisst dieser Befehl in C++ .LineStyle = xlContinuous .Weight = xlMedium .ColorIndex = xlAutomatic End With Selection.Borders(xlEdgeRight).LineStyle = xlNone Selection.Borders(xlInsideVertical).LineStyle = xlNoneVersucht habe ich mal diesen Cpp Code:
oRange = oSheet.GetRange(COleVariant("A6"), COleVariant("R6")); // jetzt eine Linie ziehen Borders oBorders; oBorders = oRange.GetBorders(); oBorders.SetLineStyle(COleVariant((short) 1)); oBorders.SetWeight(COleVariant((short) 3));Mir fehlt der Befehl bestimmte Linien anzusprechen.
Was mir noch aufgefallen ist. Im Borland Forum werden immer die Konstanten aus dem MakroRekorder verwendet (zB xlInsideVertical) aber in VS sind diese nicht definiert. Ist das richtig?
Gruß Heiko
-
Offenbar ist Borders eine Collection:
Border bottomborder; bottomborder = borders.GetItem((long)9); bottomborder.SetLineStyle( COleVariant((short)-4119)); //xlDouble = -4119 bottomborder.SetWeight( COleVariant((short)4)); //xlThick = 4Quelle:
http://support.microsoft.com/support/kb/articles/q179/7/06.asp
-
jetzt funktioniert es.
Vielen Dank