Ho notato che quando Excel 2007 (e probabilmente le versioni precedenti) hanno lo stato attivo della finestra, Excel viene eseguito alla massima velocità, il che significa che i file si aprono rapidamente e le macro VBA a esecuzione prolungata vengono eseguite rapidamente.
Se la finestra di Excel perde lo stato attivo, la priorità del thread di Excel sembra ridursi drasticamente e i file di grandi dimensioni che si aprivano quando si spostava lo stato attivo si aprivano lentamente e il completamento delle macro VBA complesse richiede molto tempo.
Esiste un modo per mantenere alta la priorità di Excel indipendentemente dal fatto che sia focalizzata o meno?
So che potrei aumentare artificialmente la priorità del thread tramite Task Manager ma non sono sicuro di quali effetti a catena ciò potrebbe avere per i miei fogli di calcolo o sistema operativo.
Il mio sistema è un Dual Core veloce con 4 GB di RAM e funziona con Vista 64.
MODIFICA PER CHIARIMENTO:
Il mio problema non è semplicemente quello di aumentare la priorità del processo di Excel tramite Task Manager perché ciò influisce su Excel solo quando ha lo stato attivo della finestra.
Il punto è cosa succede quando Excel perde lo stato attivo della finestra.
Dall'uso estensivo di Excel, sembra che, di progettazione , riduca deliberatamente la propria priorità di processo quando la finestra di Excel non ha lo stato attivo.
L'impostazione di una priorità più alta per il processo di Excel non impedisce che ciò accada: dà a Excel una priorità di processo più alta solo quando ha lo stato attivo, ma si riduce drasticamente quando perde lo stato attivo.
Nel normale utilizzo di Excel (probabilmente il 99% di tutti gli utenti), non si noterebbe questo effetto, ma con un enorme foglio di calcolo (circa 2000 fogli di lavoro, credo) e macro VBA complesse che richiedono alcuni minuti per essere eseguite, l'effetto è molto evidente.
Idealmente, ne ho bisogno per mantenere la stessa priorità di thread indipendentemente dal fatto che la finestra di Excel sia focalizzata.
Fino ad ora, sono stato seduto indietro dal computer per alcuni minuti durante l'elaborazione in modo da non fare clic accidentalmente fuori dalla finestra di Excel quando si sta sgretolando ma speravo solo che ci fosse una soluzione migliore ... forse un hack del registro di qualche tipo?
MODIFICARE:
Ho trovato solo un'altra menzione di questo problema in rete a questo link
Questa è la citazione pertinente ...
Tuttavia, se rendo visibile la finestra di Excel 2000 per l'utente e mantengo anche la finestra a fuoco, le macro vengono eseguite con la velocità prevista. Ancora una volta, la finestra deve avere lo stato attivo o la macro rallenta nuovamente a una ricerca per indicizzazione.