Just to help highlight the difference, I think that there may be a misconception here about the difference between CPU and memory utilization.
Memory is essentially storage made up of "pages" of space for data. When you are at 50% memory utilization, then half of the memory (storage space) available to your system is in use. When you run out of available RAM (actually before you get to that point, but I'm trying to keep it simple) Windows will swap some of those pages of data from memory to disk (start with the least frequently used pages). They are stored in the page file (also called a swap file). Sometimes programs, scripts, macros, or other processes are poorly written and they do not release or clean up the memory that they were using when they terminated. Sometimes a process can terminated abnormally (aka, crash) before it gets a chance to free up the pages in memory that it was using. In these cases you'll end up with memory being allocated or marked as used that is actually no longer in use. Generally what a memory cleanup program does is to check the pages that are shown as allocated in memory, determine which pages are actually available even though they show otherwise, and then free up those pages. Sometimes this can free up a lot of memory, sometimes not. It mainly depends upon how your sloppily the processes that you are running were written.
CPUs are completely different. They are actually doing the work of processing data on a computer, as well as moving data around, etc. The CPU's processing power (and this is a vast oversimplification) is divided into processing cycles. The faster the CPU clock, the more cycles the CPU can complete within one second. For example, a 100 MHz CPU can complete 100 million cycles per second, a 200 MHz CPU can complete 200 million cycles per second, etc. When you are looking at CPU utilization on a PC, you are looking at the percentage of cycles per second (on average) that your CPU is actually doing something. So if your CPU is running at 50% utilization, it is only doing work half of the time. During the rest of the processing cycles the CPU is sitting idle. If CPU utilization reaches 100% then it is doing something 100% of the time. There is no way to offload some of this work to another part of the system without adding additional CPUs. In this case the only way to "free up cycles" is to stop processing something, aka, end some programs/processes. Sometimes there is an application that doesn't share CPU time very well that is utilizing all or a majority of the CPU cycles, and closing that application will reduce CPU utilization. Of course, that isn't much help if you need to be running everything that is running.
The one thing that does come to mind in your situation is to see what your memory utilization looks like. If you start running low on RAM and your system has to swap the memory out to disk, then that will consume CPU cycles as well. Even if you aren't swapping out to disk, all of the work of memory management could be bogging down the CPU. When your CPU starts to get up towards 100% utilization, how much memory is Excel using? Is that amount still growing? If so your problem may just be that Excel is generating so much data that the file becomes too big to reside in memory.
The other thought is that something that you're running may create a memory leak condition. A memory leak is when a program doesn't manage memory properly and just continues to consume increasing amounts of memory until you eventually run out. You may want to install relevant updates/patches to your applications to see if that helps.
If none of that helps, you're probably best off looking at your macros.