2013-03-20 20 views
8

Sto lavorando in C# .net e fondamentalmente voglio che il mio plug-in sia in grado di dire se quando l'utente salva, il salvataggio proviene da Excel stesso o se il salvataggio è proveniente dalla finestra "Visual Basic per applicazione".Come sapere quando nella finestra VBA

C'è un modo per dire se l'utente è attualmente in "Microsoft Visual Basic per l'applicazione" o no?

Modifica: Non so se si tratta di una soluzione completa, ma ho trovato che .Application.ActiveWindow.ActiveSheet == null sembra funzionare.

+5

Sì, questo è abbastanza semplice. Qual è in particolare la difficoltà che stai incontrando? –

+0

ActiveSheet ha risolto il problema? –

+0

Andre Neves - sì, sì. Mi dispiace per la risposta in ritardo – user1255276

risposta

2

On Error Resume Next set WBK = cartelle di lavoro ("Mybook.xls") su Goto errore 0 è WBK è niente allora _ impostare wbk = workbooks.open ("Mybook.xls")

1

Si potrebbe fare qualcosa del genere per restituire un valore booleano True/False se la finestra VBE del progetto è aperta. Non sono sicuro di quello che il C# equivalente sarebbe, ma si può essere in grado di controllare semplicemente se VBProject VB Editor della cartella di lavoro è attivo:

Function IsVBEActive(wb as Workbook) As Boolean 

Dim vbProj 

Set vbProj = wb.vbProject 

IsVBEActive <> vbProj.VBE.ActiveWindow Is Nothing 

End Sub 

NOTA Ciò richiede che consente l'accesso di fiducia per il modello a oggetti progetto VB :

enter image description here

Problemi correlati