Posso usare il binding tardivo per verificare l'esistenza di una libreria prima di usarla tramite legame precoce?

StackOverflow https://stackoverflow.com/questions/8911845

  •  29-10-2019
  •  | 
  •  

Domanda

Mi piace usare il binding precoce nei miei progetti VBA, dal momento che mi piace l'auto-completa dei nomi dei metodi, ecc. Durante lo sviluppo. Mi piace anche la fiducia di sapere che il compilatore mi avvertirà se ho spinto erroneamente un nome di metodo.

Tuttavia, per utilizzare l'associazione precoce devo aggiungere un riferimento alla libreria pertinente (ad esempio, "Microsoft Scripting Runtime"). Va bene per le librerie "standard" come quella, ma a volte voglio usare una libreria che può o meno essere presente sulla macchina dell'utente.

Idealmente, vorrei visualizzare un messaggio utile se la libreria non è presente (come "XYZ non è installato su questo computer e quindi questa funzione non può essere utilizzata"). Se stavo usando solo tardi vincolante, quindi potrei farlo:

Dim o As Object
Set o = CreateObject("foo", "bar")

If o Is Nothing Then
    MsgBox "nope"
End If

Ma, se ho aggiunto un riferimento alla libreria per utilizzare l'associazione precoce, quindi se la libreria non è presente ricevo un errore di compilazione quando viene caricato il mio progetto VBA. Così, nessuno delle esecuzioni del codice (incluso il codice per rilevare la non esistenza della libreria).

C'è un modo per aggirare questo catch-22?

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top