Sei sulla pagina 1di 5

INFO: Risoluzione dell'errore 429 generato durante l'automazione di applicazioni di Office

Quando si utilizza l'operatore New o CreateObect in Microsoft Visual Basic per creare un'istanza di
un'applicazione di Microsoft Office, potrebbe essere visualizzato un messaggio di errore analogo al
seguente:
Errore di runtime "'4!": il componente "ctive# non pu$ creare l'oggetto
Questo errore si verifica %uando l'oggetto di automazione ric&iesto non pu$ essere creato da 'OM e
non ( pertanto disponibile in Visual Basic) *'errore viene in genere rilevato solo su alcuni computer)
+n %uesto articolo vengono forniti alcuni suggerimenti per la rilevazione e la risoluzione di problemi
comuni noti come causa dell'errore)
,orna all'inizio - +nvia suggerimenti
Informazioni
" differenza di alcuni errori generati in Visual Basic, non vi ( una causa specifica dell'errore 4!) +l
problema si verifica a causa di un errore di configurazione dell'applicazione o del sistema o di un
componente mancante o danneggiato) .er individuarne l'esatta causa ( necessario procedere per
esclusione, analizzando le varie possibilit/) 0e l'errore viene rilevato in un computer client, numerosi
sono gli elementi da verificare per individuare e risolvere il problema)
1li elementi illustrati pi2 avanti forniscono alcuni suggerimenti pratici per la risoluzione di %uesto
errore durante l'utilizzo di applicazioni di Office) .er %uanto alcune di %ueste informazioni potrebbero
essere applicate anc&e a server 'OM non di Office, tuttavia in %uesto articolo si presume c&e l'utente
stia tentando di automatizzare Microsoft Office)
!erifica del codice
+l primo elemento da verificare in %uesti casi ( il codice) .rima di iniziare a risolvere l'errore, (
necessario conoscere il punto in cui l'errore si verifica) ,entare di restringere tale ricerca a una
singola riga di codice)
Quando si ( individuato il codice contenente l'errore, provare a effettuare le seguenti operazioni:
Verificare c&e nel codice sia utilizzata la creazione esplicita degli oggetti) Qualsiasi tipo
di problema ( pi2 semplice da individuare se lo si riconduce a una singola azione) "d
esempio, pratic&e come le seguenti sono sconsigliate:
"pplication)3ocuments)"dd '3O4', 50E ,6+077
Oppure
3im o8ord"pp "s 4e9 8ord)"pplication '3O4', 50E ,6+077
'))) some ot&er code
o8ord"pp)3ocuments)"dd
Entrambi %uesti metodi utilizzano la creazione implicita degli oggetti) *:avvio di Microsoft
8ord non avviene finc&; la variabile non viene c&iamata almeno una volta) .oic&; la
variabile pu$ essere c&iamata in varie parti del programma, potrebbe essere difficoltoso
individuare il problema) +noltre, non ( c&iaro se il problema riguarda la creazione
dell'oggetto "pplication o %uella dell'oggetto 3ocument)
Effettuare invece c&iamate esplicite per creare ciascun oggetto distintamente:
3im o8ord"pp "s 8ord)"pplication
3im o3oc "s 8ord)3ocument
0et o8ord"pp < 'reateOb=ect>"8ord)"pplication"?
'))) some ot&er code
0et o3oc < o8ord"pp)3ocuments)"dd
+n %uesto modo il problema sar/ pi2 facilmente individuabile e il codice pi2 leggibile)
Quando si crea un'istanza di un'applicazione di Microsoft Office, utilizzare
CreateObect anzic&; New) CreateObect ( maggiormente conforme al processo di
creazione utilizzato dalla maggior parte dei client Visual '@@ e consente l'eventuale
cambiamento dei '*0+3 del server '*0+3 tra una versione e l'altra) CreateObect pu$
essere utilizzato sia con oggetti ad associazione anticipata sia con oggetti ad
associazione tardiva)
Verificare c&e la stringa .rog+3 passata a CreateObect sia corretta e indipendente
dalla versione >ad esempio, utilizzare "EAcel)"pplication" anzic&; "EAcel)"pplication)B"?)
4el sistema in cui si verifica l'errore potrebbe essere installata una versione di
Microsoft Office precedente o pi2 recente di %uella specificata in .rog+3)
.er facilitare il debug di applicazioni c&e non possono essere eseguite nell'+3E, utilizzare
il comando "rl per la segnalazione del numero della riga in cui si verifica l'errore)
Mediante il seguente codice, ad esempio, si otterr/ la segnalazione dell'oggetto di
automazione c&e non pu$ essere creato in 8ord o in EAcel:
3im o8ord "s 8ord)"pplication
3im oEAcel "s EAcel)"pplication

On Error 1oto errC&andler

D: 0et o8ord < 'reateOb=ect>"8ord)"pplication"?


: 0et oEAcel < 'reateOb=ect>"EAcel)"pplication"?

' ))) some ot&er code

errC&andler:
MsgBoA ",&e code failed at line " E Erl, vb'ritical
5tilizzare una combinazione di finestre di messaggio e di numeri di riga per tenere
traccia dell'errore)
.rovare a utilizzare l'associazione tardiva >ossia, 3im o8ord"pp "s Ob=ect?) 1li oggetti
ad associazione anticipata ric&iedono infatti l'utilizzo delle relative interfacce
personalizzate per poter essere sottoposti a mars&alling tra processi diversi) 0e si
verifica un problema di mars&alling di un'interfaccia personalizzata durante l'esecuzione
di CreateObect o New, verr/ generato un errore 4!) 5n oggetto ad associazione
tardiva utilizza un'interfaccia definita dal sistema >+3ispatc&? per il cui mars&alling non
( necessario in un proAF personalizzato) .rovare a utilizzare un oggetto ad associazione
tardiva e verificare se si ottengono cambiamenti significativi)
0e il problema si verifica solo %uando l'oggetto ( associato anticipatamente, la causa sar/
nell'applicazione server e in genere il problema potr/ essere corretto reinstallando
l'applicazione >vedere pi2 avanti in %uesto articolo?)
0e si sta eseguendo l'automazione da "0. o da un componente M,0, utilizzare
CreateObect anzic&; #er$er%CreateObect&') 5tilizzando #er$er%CreateObect verr/
creata un'istanza dell'applicazione di Office con l'identit/ di un pacc&etto M,0 c&e ( la
causa nota dei problemi riscontrati in Microsoft Office)
!erifica del ser$er di automazione
*e cause pi2 comuni di un errore di esecuzione di CreateObect o New sono problemi relativi alla stessa
applicazione server) +n genere, %uesti problemi riguardano la configurazione o l'installazione
dell'applicazione) 3i seguito sono illustrati alcuni degli elementi da verificare:
Verificare c&e l'applicazione di Microsoft Office c&e si intende automatizzare sia
installata nel computer locale e c&e sia possibile avviarla scegliendo Esegui dopo aver
fatto clic sul pulsante 0tart) 0e il programma non pu$ essere avviato manualmente, non
sar/ in grado di funzionare in automazione)
Eseguire una nuova registrazione dell'applicazione digitando il percorso del server nella
finestra di dialogo Esegui visualizzata scegliendo Esegui dopo aver fatto clic sul pulsante
0tart, %uindi inserire (Reg#er$er alla fine della riga) 0cegliere O)) Questo metodo
dovrebbe eseguire l'applicazione in modo invisibile all'utente e rieseguirne la
registrazione come server 'OM) 0e il problema riguarda una c&iave del Gegistro di
sistema mancante, in genere il metodo indicato dovrebbe risolverlo)
'ontrollare la c&iave del Gegistro di sistema *ocal0erverH sotto il '*0+3
dell'applicazione c&e si intende automatizzare, verificando c&e il percorso
dell'applicazione sia specificato in modo corretto e in formato breve >3O0 B)H?) "nc&e
se non ( necessario c&e un server sia registrato utilizzando un nome di percorso breve, (
noto c&e i nomi lung&i di percorso contenenti spazi causano problemi su alcuni sistemi
>vedere pi2 avanti in %uesto articolo?)
.er verificare la c&iave del percorso memorizzata per il server, avviare l'editor del
Gegistro di sistema scegliendo Esegui dopo aver fatto clic sul pulsante 0tart e digitando
regedit nella finestra di dialogo Esegui) 0elezionare la c&iave del Gegistro di sistema
6IEJC'*"00E0CGOO,K'lsid) +n corrispondenza di %uesta c&iave del Gegistro di
sistema sono specificati i '*0+3 dei server di automazione registrati nel sistema)
Lacendo riferimento ai valori indicati pi2 avanti, individuare la c&iave del Gegistro di
sistema c&e rappresenta l'applicazione di Office c&e si intende automatizzare e
verificare la relativa c&iave del Gegistro di sistema *ocal0erverH per il percorso)
@<<<<<<<<<<<<<<<<<<<<<<<<@<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<@
- 0erver di office - '&iave del Gegistro di sistema '*0+3 -
@<<<<<<<<<<<<<<<<<<<<<<<<@<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<@
- "ccess)"pplication - MNH"4'!'DO3PB3ODD3QO!BBLOQQ"Q'!Q3'B3!R -
@OOOOOOOOOOOOOOOOOOOOOOOO@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@
- EAcel)"pplication - MQQQ4SQQOQQQQOQQQQO'QQQOQQQQQQQQQQ4PR -
@OOOOOOOOOOOOOOOOOOOOOOOO@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@
- Lront.age)"pplication - MQ43LDQDSONQQNODD3DOBHB'OQQPQ!N"BEPNSR -
@OOOOOOOOOOOOOOOOOOOOOOOO@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@
- OutlooT)"pplication - MQQQPLQH"OQQQQOQQQQO'QQQOQQQQQQQQQQ4PR -
@OOOOOOOOOOOOOOOOOOOOOOOO@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@
- .o9er.oint)"pplication - M!D4!H44DOS"!DODD'LOBNQQOQQ""QQPQPHBR -
@OOOOOOOOOOOOOOOOOOOOOOOO@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@
- 8ord)"pplication - MQQQQ!LLOQQQQOQQQQO'QQQOQQQQQQQQQQ4PR -
@OOOOOOOOOOOOOOOOOOOOOOOO@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@
Verificare c&e il percorso corrisponda alla posizione reale del file) 'on i nomi di percorso
brevi, infatti, si pu$ avere l'impressione c&e il percorso sia corretto anc&e %uando non lo
() "d esempio, per Microsoft Office e Microsoft +nternet EAplorer, se installati nei
percorsi predefiniti, sar/ specificato un percorso analogo a
"':K.GO1G"UDKM+'GO0U#K", dove # ( un numero) 4on ( immediatamente evidente c&e
il nome del percorso specificato ( in formato breve)
V possibile verificare la correttezza del percorso copiando il valore dal Gegistro di
sistema e incollandolo nella finestra di dialogo Esegui, visualizzata scegliendo Esegui dopo
aver fatto clic sul pulsante 0tart) .rima di eseguire l'applicazione, rimuovere l'opzione
(*utomation) Verificare se l'applicazione si avvia %uando si sceglie O)) 0e si avvia,
significa c&e il server ( registrato correttamente) +n caso contrario, sostituire il valore
della c&iave del Gegistro di sistema *ocal0erverH con il percorso corretto, utilizzando,
se possibile, un nome di percorso breve)
.roblemi sono stati riscontrati durante l'automazione di 8ord o di EAcel %uando il
modello 4ormal)dot di 8ord o il file di risorse EAcel)Alb di EAcel sono danneggiati) .er
verificare se i file sono danneggiati, cercare tutte le istanze di 4ormal)dot o W)Alb
all'interno dei disc&i rigidi locali) 0e si esegue 8indo9s QQQ, 8indo9s 4, o 8indo9s
!SX!B con i profili abilitati, potranno trovarsi pi2 copie di %uesti file, una per ogni profilo
utente presente nel sistema) Ginominare temporaneamente i file 4ormal)dot o W)Alb e
riavviare il test di automazione) + file verranno ricreati automaticamente %ualora non
vengano trovati) Verificare c&e il codice funzioni) 0e funziona, i file rinominati dovranno
essere eliminati perc&; sono danneggiati) 0e il codice non funziona, ripristinare il nome
originale dei file in modo c&e le impostazioni personalizzate salvate nei file non vadano
perdute)
0e si utilizza un sistema 8indo9s 4,, 8indo9s QQQ, 8indo9s #. o 8indo9s 0erver
QQH, eseguire l'applicazione accedendo con l'account "dministrator) + server di Office
devono disporre dell'accesso in letturaXscrittura al Gegistro di sistema e all'unit/ disco e
potrebbero non essere caricati correttamente %ualora le impostazioni di protezione
correnti negassero %uesto privilegio)
!erifica del sistema
*a configurazione del sistema pu$ causare problemi anc&e durante la creazione di server 'OM outOofO
process) 3i seguito sono illustrati alcuni degli elementi di sistema da controllare %uando si verifica
l'errore:
'ontrollare se il problema si verifica con ogni server outOofOprocess) 0e un'applicazione,
ad esempio 8ord, utilizza esclusivamente uno specifico server 'OM, eseguire una prova
su un server outOofOprocess differente per assicurarsi c&e il problema non riguardi
espressamente il livello 'OM) 0e nel sistema non ( possibile creare altri server 'OM outO
ofOprocess, per risolvere il problema sar/ necessario provvedere a una reinstallazione dei
file di sistema O*E >vedere di seguito? o dell'intero sistema operativo)
Verificare i numeri di versione dei file di sistema O*E c&e gestiscono l'automazione)
Questi file vengono in genere installati come insieme e devono avere numeri di build
corrispondenti) 5n'utilit/ di installazione configurata in modo improprio potrebbe
erroneamente installare i file separatamente, provocando errori di mancata
corrispondenza) .er evitare problemi di automazione, verificare c&e i numeri di build dei
file corrispondano)
+ file di automazione si trovano nella directorF 8indo9sK0Fstem o 8inntK0FstemH) 3i
seguito ( fornito l'elenco dei file da verificare:
@OOOOOOOOOOOOOOO@OOOOOOOOOOOOO@OOOOOOOOOOOOOOOO@
- 4ome file - Versione - 3ata modifica -
@OOOOOOOOOOOOOOO@OOOOOOOOOOOOO@OOOOOOOOOOOOOOOO@
- "sFcfilt)dll - )4Q)4NS - B marzo D!!! -
- OleautH)dll - )4Q)4NS - B marzo D!!! -
- OleproH)dll - S)Q)4NS - B marzo D!!! -
- 0tdole)tlb - )4Q)4NS - B marzo D!!! -
@OOOOOOOOOOOOOOO@OOOOOOOOOOOOO@OOOOOOOOOOOOOOOO@
Verificare la versione del file facendo clic con il pulsante destro del mouse sul file in
Esplora risorse e scegliendo .ropriet/ dal menu di scelta rapida) + valori pi2 importanti
sono le ultime %uattro cifre della versione del file, ossia il numero di build, e la data
dell'ultima modifica) Verificare c&e i valori siano uguali per tutti i file di automazione)
0i noti c&e i numeri di versione e le date di modifica indicate sono forniti a solo scopo
esemplificativo) + valori reali possono essere differenti) Verificare c&e vi sia
corrispondenza tra i valori reali, non tra %uelli reali e i valori elencati in tabella)
0e i numeri di versione e le date di modifica dei file non corrispondono, ( possibile
scaricare un'utilit/ autoestraente c&e aggiorner/ i file di automazione) .er ulteriori
informazioni, fare clic sul numero dell'articolo della Microsoft Ino9ledge Base riportato
di seguito:
!QBBN VBGunPQspP)eAe installa i file di runtime di Visual Basic P)Q 0.P
+n 8indo9s 4, 4)Q ( stato riscontrato un problema durante l'avvio dei server di
automazione presenti in una cartella il cui nome contiene uno spazio eXo gli stessi B
caratteri iniziali del nome di un'altra cartella) "d esempio, un server presente in
':K.rogrammiK'artella potrebbe non avviarsi durante una c&iamata a 'reateOb=ect se
nel sistema esiste un'altra cartella denominata ':K"ltri programmiK'artella) .er ulteriori
informazioni, vedere il seguente articolo della Microsoft Ino9ledge Base:.er ulteriori
informazioni su %uesto problema e sulle procedure di risoluzione, fare clic sul numero
dell'articolo della Microsoft Ino9ledge Base riportato di seguito >il contenuto potrebbe
essere in inglese?:
DBSDP B51: +mpossibile avviare il server 'OMXO*E in 8indo9s 4, 4)Q
Reinstallazione di +icrosoft Office
0e nessuna delle procedure precedenti consente di risolvere il problema, provare a disinstallare
Microsoft Office e a reinstallarlo nuovamente) Microsoft consiglia di disinstallare la versione esistente
prima di procedere a una nuova installazione dai disc&i di installazione originali)