First I would like to reply to this with an update on how I got it to work. Learned some very interesting things. Second, I have another question. 1)--------- I did not end up using a macro, but instead translated the statements to the following based on your help Neil: (example) $this->xlEdgeBottom = 9; $this->xlContinuous = 1; $range = $sheet->Range("A5:E5"); com_propput($range->Borders($this->xlEdgeBottom),LineStyle,$this->xlContinuous); Notice that I defined the variables for xlEdgeBottom and xlContinuous. The reason is that these are constants in excel and if you use the constant names, everything freaks out. I actually had to lookup the constants by name and get their values in excel. Running the values through the PHP COM functions did the trick. If there is a shorter way to do this, please let me know. The other thing is that the "Borders" property in excel does not appear to return an object. Therefore, given the syntax limitations, I could not do the following: $range->Borders($this->xlEdgeBottom)->LineStyle = $this->xlContinous; or $border = $range->Borders($this->xlEdgeBottom); $border->LineStyle = $this->xlContinous; I therefore had to use the com_propput function as stated above. 2)--------- Now, I have the following syntax in VB that I need to convert to PHP: Range("A7:E20").Select Selection.Sort Key1:=Range("A7"), Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom It looks you can specify multiple key paramaters as you can sort by more than one column. I think you might be able to see my difficulty here... some of that syntax is pretty weird. -Ethan Nelson, Modulus, LLC -----Original Message----- Why not try to execute the macro, $Excel->application->run("book.xls!macro"); but if this is not possible / desirable, the with statement: With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With is only a shorthand way of specifying Selection.Borders(xlEdgeBottom).LineStyle = xlContinuous Selection.Borders(xlEdgeBottom).Weight = xlThin Selection.Borders(xlEdgeBottom).ColorIndex = xlAutomatic Hope this helps, Regards, Neil Morgan -----Original Message----- From: Ethan Nelson [mailto:enelson@modulusgroup.com] Sent: 28 October 2003 22:13 To: php-windows@lists.php.net Subject: Help with COM Hello, I am trying to write some excel functions in PHP 4.3.3 using the COM interface. The objective it to create a "BottomEdge" border with regular line styles etc... The actual visual basic code that the macro recorder in excel writes goes as follows: Range("A13:E13").Select Selection.Borders(xlDiagonalDown).LineStyle = xlNone With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With Now my code is in object and looks something like: $this->sheet->column->EntireColumn->Font->Bold=true; That would be an example of how I would make an entire column bold (I think). Anyway... how the heck do I do a "with" statement using this PHP syntax? I tried separating each line into objects but tells me it can't find function "Border": $range = $this->sheet->Range("A13:E13"); $selection = $range->Select; $diagdown = $selection->Borders(xlDiagonalDown); $diagdown->LineStyle = xlNone; ... with? Thanks for the help... I'm pretty new at trying to translate VB syntax into a compatible PHP code. -Ethan Nelson, Modulus, LLC -- PHP Windows Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php