Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
1156to1160
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Editor per Code schließen

VBA Editor per Code schließen
Captain
Hi,
habe folgenden Code, der auch funktioniert...

If Application.VBE.MainWindow.Visible = True Then
Application.VBE.MainWindow.Visible = False
Else
Application.VBE.MainWindow.Visible = True
End If
aber..der funktioniert NUR, wenn in der Makrosicherheit der Zugriff auf VBA-Projekt das Häkchen gesetzt ist...
Gibt es einen "alternativen" Code, um den VBA-Editor zu schließen?
Hintergrund:
Ich habe einen Dienstplan erstellt. Meine Navigation und Bearbeitung funktioniert per Userforms. Mein VBA-Projekt ist Passwort geschützt. Wenn jemand also im VBA-Editor auf "Stop" klickt, kann derjenige in der Mappe und in den Tabellen herumschmieren - das ist denkbar schlecht und hat schon stattgefunden! Man kann echt niemanden trauen - das ist traurig!
Danke für die Hilfe
Jack

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: VBA Editor per Code schließen
01.06.2010 09:05:15
Rudi
Hallo,
und wozu soll dann der Code gut sein?
Versuch's mal über SendKeys.
Gruß
Rudi
AW: VBA Editor per Code schließen
01.06.2010 11:18:05
Captain
Hi,
habe doch irgendwo in den Tiefen des www. etwas gefunden was funzt:

Private Const WM_CLOSE = &H10
Private Declare Function apiPostMessage _
Lib "user32" Alias "PostMessageA" _
(ByVal hwnd As Long, _
ByVal wMsg As Long, _
ByVal wParam As Long, _
lParam As Any) _
As Long
Private Declare Function apiFindWindow _
Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, _
ByVal lpWindowName As String) _
As Long
Private Declare Function apiIsWindow _
Lib "user32" Alias "IsWindow" _
(ByVal hwnd As Long) _
As Long
Function fCloseVBEWindow() As Boolean
Const VBE_CLASS = "wndclass_desked_gsk"
Dim hwnd As Long
hwnd = apiFindWindow(VBE_CLASS, Application.VBE.MainWindow.Caption)
If hwnd Then
Call apiPostMessage(hwnd, WM_CLOSE, 0, 0&)
fCloseVBEWindow = (apiIsWindow(hwnd)  0)
End If
Application.SendKeys "~"
End Function
Private Sub CommandButton1_Click()
If fCloseVBEWindow Then
MsgBox "VBE closed"
Else
MsgBox "Failed to close VBE"
End If
End Sub
Jack
Anzeige
AW: VBA Editor per Code schließen
01.06.2010 14:48:50
Nepumuk
Hallo,
hier: Application.VBE.MainWindow.Caption greifst du aber auf das VBE-Projekt zu. Und das geht nicht wenn der Zugriff nicht gestattet ist.
Du musst also alle Fenster durchlaufen und schauen ob in der Titelleiste "Microsoft Visual Basic" steht.
Gruß
Nepumuk

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige