Thanks. It is a faster way to do it. I was trying to keep the algorithms as = as possible to isolate the ole aspect. Using the improved method: >pythonw -u "someone.py" Excel 1000 cells total is 51625817.0589 Python Elapsed 0.766000032425 >Exit code: 0 >ruby exceloletest2someone.rb Excel 1000 cells total is 51625817.0589 Ruby Elapsed 0.515000 >Exit code: 0 Now the numbers mis-represent the actual time. Ruby processing time is faster but I think Ruby spends a second or two before the 'time' is taken. Python is the winner in this case. -greg