Fast VBA: monitor with ProcExplorer
You can look into the speed of your code by using Process Explorer by Microsoft. Originally developed by Mark Russinovich, Process Explorer is one of a number of tools to monitor the status of your system at the windows level. As your macros are executing, ProcExplorer can give you information on what is going on with your system.
include columns such as:
1. CPU: usually included by default, in particular look for very high values on one service, check how much oracle is using
2. I/O Read Bytes, I/O Write Bytes: defines how much each particular service is churning the hard disk
significant as an indicator of something wrong, also note that hard disk reads are 100x slower than RAM
3. Private Bytes: Amount of RAM being used by the process
4. Virtual Size: Amount of virtual RAM being used by the process.
By monitoring the above columns, you get a good sense of what is happening with your system as the macro executes. This is particularly useful when stepping through code and debugging. If any of these resources are being overused, you may have a bottleneck. This may require some re-factoring. Also, if any services or processes are taking up significant resources, you can kill them to free up more resources for your code. You can also benchmark if you have more than one PC on which you can run your code. Having two screens side-by-side can give some insight into what is happening as your code is running.