I am working with a large-ish spreadsheet (45 MB, 9 worksheets, up to 23,000 rows) on a machine that has four processors. When Excel is working over a large range of cells, I can see from the Windows Task Manager that all four processors are being used.

I notice though that when a large number of calculations involve VBA function and subroutine calls, only one processor is used.

It makes sense that a given single VBA call, or thread of VBA calls, might only be able to take advantage of one processor but when a spreadsheet contains many such calls (such as a range of cells that each call a VBA function) then it should be able to distribute those calls over the four processors. Using only one processor is slowing down the spreadsheet to the point of unusability.

Is there some kind of switch or setting that needs to be made at the VBA level to be able to take advantage of the multi-processor availability?