2013-03-20 6 views
8

Ich arbeite in C# .net und im Grunde möchte ich mein Plug-in in der Lage zu sagen, wenn der Benutzer speichert, kommt die Sicherung von Excel selbst oder wenn das Speichern ist aus dem Fenster "Visual Basic for Application" kommen.Wie zu sagen, wenn im VBA-Fenster

Gibt es eine Möglichkeit zu sagen, ob der Benutzer derzeit in "Microsoft Visual Basic für die Anwendung" ist oder nicht?

Edit: Ich weiß nicht, ob dies eine vollständige Prof-Lösung ist, aber ich habe festgestellt, dass .Application.ActiveWindow.ActiveSheet == null scheint zu arbeiten.

+5

Ja, das ist ziemlich einfach. Was genau ist die Schwierigkeit, auf die Sie stoßen? –

+0

Hat ActiveSheet Ihr Problem gelöst? –

+0

Andre Neves - ja, tat es. Entschuldigung für die späte Antwort – user1255276

Antwort

2

auf Fehler Lebenslauf nächste Satz wbk = Arbeitsmappe ("MyBook.xls") On Error GoTo 0 ist wbk nichts ist dann _ gesetzt wbk = workbooks.open ("Mybook.xls")

1

Sie könnten so etwas tun, um einen booleschen Wert True/False zurückzugeben, wenn das VBE-Fenster des Projekts geöffnet ist. Ich bin mir nicht sicher, was das C# -Äquivalent wäre, aber man kann in der Lage sein, einfach zu überprüfen, ob der VBProject VB Editors Arbeitsmappe aktiv ist:

Function IsVBEActive(wb as Workbook) As Boolean 

Dim vbProj 

Set vbProj = wb.vbProject 

IsVBEActive <> vbProj.VBE.ActiveWindow Is Nothing 

End Sub 

HINWEIS Dies erfordert größten Zugriff auf die VB-Projekt Object Model ermöglicht :

enter image description here

Verwandte Themen