Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
268to272
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
268to272
268to272
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Überprüfen ob eine Funktion existiert

Überprüfen ob eine Funktion existiert
20.06.2003 11:18:49
Michael
Hallo,

gibt es eine Methode, mit der man abfragen kann, ob eine bestimmte Funktion existiert bzw. definiert ist?

Zur Erklärung:

Beim Aufruf einer Excel-Datei wird in "DieseArbeitsmappe" ein Makro aufgerufen:

Call Result

In Modul1 ist dann das Makro mit

Sub Result()
Quellcode
End Sub

definiert. Am Ende hat der Benutzer die Möglichkeit, die Datei zu speichern, hierbei wird Modul1 entfernt mit

With ActiveWorkbook.VBProject
.VBComponents.Remove .VBComponents("Modul1")
End With

Ich möchte nun beim Aufruf der neu gespeicherten Datei abfragen, ob Modul1 existiert, damit es nicht zu Fehlermeldungen kommt. Etwa so:

If existsObject Modul1 then
Call Result
End If

Gibt es sowas wie existsObject?

Vielen Dank und viele Grüße
Michael

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Überprüfen ob eine Funktion existiert
20.06.2003 11:41:19
OttoH

Hallo Michael,

versuch's mal hiermit:


Gruß OttoH

geht auch einfacher
20.06.2003 12:02:46
RAnton

Hallo Michael,

wie wärs einfach so.

thisworkbook.VBProject.VBComponents("DeinModul").CodeModule.Find ("DeineFunktion",1,1,1,1)

Gruß
RAnton

Re: Überprüfen ob eine Funktion existiert
20.06.2003 12:06:30
Michael

Vielen Dank für den Hinweis, habe das folgendermaßen eingebunden:

Dim i As Integer
Dim modul As Object
For i = 1 To ActiveWorkbook.VBProject.VBComponents.Count
If ActiveWorkbook.VBProject.VBComponents(i).name = "Modul1" Then
Call Result
End If
Next

Leider erscheint eine Fehlermeldung "Fehler beim Kompilieren - Sub oder Funktion nicht definiert!" ... Ist sie ja auch nicht mehr, aber eigentlich dürfte das Programm doch gar nicht in die If-Bedingung reinspringen *grübel*

Anzeige
Re: Überprüfen ob eine Funktion existiert
20.06.2003 12:10:26
RAnton

Hallo,
warum folgst du nicht meinem Vorschlag.

Gruß
RAnton

Denkfehler?
20.06.2003 12:24:42
Michael

Hallo,

mittlerweise fürchte ich, einem konzeptionellen Denkfehler aufgesessen zu sein:

Ich will das Modul löschen, aber mit Remove funktioniert das nur, wenn das Modul zur Laufzeit erstellt wurde. Ist es aber nicht.

Gibt es noch eine andere elegantere Methode, Makros nach deren Ausführung zu entfernen bzw. Ausführen von Makros zu unterbinden?

Das einzige, was mir spontan dazu einfällt ist, irgendwo in einer Tabelle eine Markierung zu setzen, die dann vor der Ausführung abgefragt wird. Leider sind die Makros dann immer noch in der Datei vorhanden. :-(

Viele Grüße
Michael

Anzeige
Re: Überprüfen ob eine Funktion existiert
20.06.2003 12:28:29
Michael

Hallo RAnton,

das habe ich auch schon versucht: Deinen Vorschlag in die If-Bedingung. Führt aber zur gleichen Fehlermeldung :-(

Das Problem ist wohl, dass automatisch erstmal geprüft wird, ob alle Komponenten vorhanden sind. Die Fehlermeldung bezieht sich auf den Aufruf

Call Result

Grüße
Michael

Re: Denkfehler? -> nö
20.06.2003 13:39:06
RAnton

Hallo Michael,
versuchs dann damit.

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
With ThisWorkbook.VBProject

.VBComponents.Remove .VBComponents("DeinModul")
End With
End Sub

Gruß
RAnton

Re: Überprüfen ob eine Funktion existiert
20.06.2003 13:54:43
ANdreas

Hallo Michael,

ersetze Call Result mal durch das hier, dabei wird nicht vor der Laufzeit schon auf vorhandensein geprüft:

Hoffe das hilft weiter,
Andreas

Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige