Errore di compilazione VB6: Tipo definito dall'utente non definito

di il
17 risposte

Errore di compilazione VB6: Tipo definito dall'utente non definito

Buona domenica a tutti.
Ho un problema che non riesco a risolvere e vorrei essere aiutato.
In un progetto VB6, utilizzato su un PC Win10 64bit con installato Office 2010, avevo scelto tra i riferimenti: "Microsoft Office 11.0 Object Library" e inserito le seguenti istruzioni in un form:

Dim xlApp As EXCEL.Application
Dim xlBook As EXCEL.Workbook
Dim xlSheet As EXCEL.Worksheet
Dim xlRng As Range
Dim xlR As Integer 'riga
Dim xlAperto As Boolean
Dim xlFile As String

Il programma ha funzionato regolarmente per diverso tempo, fino a quando non ho sostituito Office 2010 con Office 2013, modificando il precedente riferimento con "Microsoft Office 15.0 Object Library" che appare regolarmente nella lista dei riferimenti disponibili, oltreché nel file .vbp in cui sono inserite le seguenti righe:

Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#..\..\..\..\..\Windows\SysWOW64\stdole2.tlb#OLE Automation
Reference=*\G{00025E01-0000-0000-C000-000000000046}#5.0#0#..\..\..\..\..\Program Files (x86)\Common Files\Microsoft Shared\DAO\dao360.dll#Microsoft DAO 3.6 Object Library
Reference=*\G{2DF8D04C-5BFA-101B-BDE5-00AA0044DE52}#2.7#0#..\..\..\..\..\Program Files (x86)\Common Files\Microsoft Shared\OFFICE15\MSO.DLL#Microsoft Office 15.0 Object Library

Purtroppo, quando lancio il progetto, appare il messaggio "Errore di compilazione: Tipo definito dall'utente non definito" e viene evidenziata la prima riga di dichiarazione delle variabili: "Dim xlApp As EXCEL.Application".
Cosa posso fare?

17 Risposte

  • Re: Errore di compilazione VB6: Tipo definito dall'utente non definito

    Per caso hai installato la versione di Excel a 64 bit?
  • Re: Errore di compilazione VB6: Tipo definito dall'utente non definito

    Sì, ho installato Office 2013 v.15.0.4420.1017
  • Re: Errore di compilazione VB6: Tipo definito dall'utente non definito

    Un saluto a tutti.
    @MiCo, quando hai installato Office 2013 hai scelto di installare la versione a 64bit che, oltre ad essere collocata in una diversa cartella, necessita della dichiarazione/inizializzazione di alcune variabili in modo diverso.
  • Re: Errore di compilazione VB6: Tipo definito dall'utente non definito

    rollis13 ha scritto:


    quando hai installato Office 2013 hai scelto di installare la versione a 64bit che, oltre ad essere collocata in una diversa cartella, necessita della dichiarazione/inizializzazione di alcune variabili in modo diverso.
    Non sono un esperto, per cui mi fai cosa grata se mi dici cosa fare, possibilmente passo passo.
    Grazie anticipatamente.
  • Re: Errore di compilazione VB6: Tipo definito dall'utente non definito

    Puoi rispondere alla semplice domanda? Hai installato la versione a 64 bit?
  • Re: Errore di compilazione VB6: Tipo definito dall'utente non definito

    oregon ha scritto:


    Puoi rispondere alla semplice domanda? Hai installato la versione a 64 bit?
    Si, Oregon, come ti ho detto stamattina, ho installato Office 2013 v.15.0.4420.1017 (aggiungo ora a 64 bit).
  • Re: Errore di compilazione VB6: Tipo definito dall'utente non definito

    Reinstalla Office a 32 bit e riprova.
  • Re: Errore di compilazione VB6: Tipo definito dall'utente non definito

    oregon ha scritto:


    Reinstalla Office a 32 bit e riprova.
    Stasera che torno a casa ci provo.
    Nel frattempo, volevo precisare che ho provato a creare un nuovo progetto selezionando il riferimento
    alla libreria excel (MSO.DLL) e tutto funziona regolarmente. Non può essere, come diceva “rollis13”, che “necessita della dichiarazione/inizializzazione di alcune variabili in modo diverso”? Se sì, in che modo?
  • Re: Errore di compilazione VB6: Tipo definito dall'utente non definito

    Dopo aver disinstallato Office 2013 x64 e reinstallato Office 2010 x86, accade che:
    1) quando apro "Progetti/Riferimenti" da VB6, nell’elenco dei Riferimenti disponibili trovo: “Microsoft Office 15.0 Object Library” con l'indicazione del percorso: “Programmi\Common Files\Microsoft Shared\OFFICE15\”, mentre in esplora risorse trovo la cartella “Programmi\Common Files\Microsoft Shared\OFFICE14\”;
    2) se premo [Sfoglia] sulla maschera dei Riferimenti disponibili e seleziono MSO.DLL dalla suddetta cartella “Programmi\Common Files\Microsoft Shared\OFFICE14\”, quando lancio il programma viene sempre segnalato l'errore di compilazione.
    Mi chiedo se per caso VB6 non legga i riferimenti in qualche file indice, piuttosto che andare a cercare le DLL nel disco rigido. Ciò perché quando ho aperto "Progetti/Riferimenti" doveva apparire la libreria di Excel 2010 e non di Excel 2013, come chiarito al punto1).
    Non so proprio cosa fare.
  • Re: Errore di compilazione VB6: Tipo definito dall'utente non definito

    Io ho installato la versione 32 bit di Excel 2019 e il riferimento è

    Microsoft Excel 16.0 Object Library

    nel percorso

    C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE

    e non ci sono problemi.
  • Re: Errore di compilazione VB6: Tipo definito dall'utente non definito

    Credo che sarebbe stato il caso di installare una versione 2013 32bit visto che eri già alla 2013 64bit.
    Nel caso del tuo Office "C:\Programmi\..\Office15\.." è il tipico percorso delle installazioni a 64bit della versione 2013 mentre "C:\Programmi\..\Office14\.." è Office 2010 ma sempre a 64bit. Tutto quello che riguarda le versioni 32bit finisce qui: "C:\Program Files (x86)\.." .
    Suggerisco di fare nuovamente la disinstallazione utilizzando il tool ufficiale LINK messo appositamente a disposizione (dovrebbe andar bene anche per Office 2010) ma credo che forse sarà necessario lanciarlo più volte visto che hai tracce di diverse versioni di librerie Office sparse per il PC (verificare se servono/sono servite ad altro prima di procedere e di questo ognuno, nel proprio PC, dovrebbe avere traccia di cosa e perché è stata installata). Dopo qualche passaggio di pulizia installa esattamente la versione a 32bit compatibile con le librerie che ti servono.
  • Re: Errore di compilazione VB6: Tipo definito dall'utente non definito

    In effetti ti avevo già detto di usare una versione a 32 bit ... devi fare attenzione a quello che ti si scrive e a quello che installi.
  • Re: Errore di compilazione VB6: Tipo definito dall'utente non definito

    Scusate, ma sono stato fuori un paio di giorni per impegni di lavoro.

    rollis13 ha scritto:


    Nel caso del tuo Office "C:\Programmi\..\Office15\.." è il tipico percorso delle installazioni a 64bit della versione 2013 mentre "C:\Programmi\..\Office14\.." è Office 2010 ma sempre a 64bit.
    Nel PC ho installato Office 2010 v.14.0.7268.5000 (32bit), come leggo dalle informazioni del prodotto, e la libreria MSO.DLL sta sotto la cartella ..\OFFICE14.
    In ogni caso, proverò a disinstallare Office 2010 e a installare Office 2013 (32bit) per vedere cosa succede.
  • Re: Errore di compilazione VB6: Tipo definito dall'utente non definito

    Ma non devi usare la mso.dll!
Devi accedere o registrarti per scrivere nel forum
17 risposte