ein Makro beginnt immer mit Sub und oder Function, was ist der Unterschied und
was sollte man beachten? In welchen fällen funktioniert bzw. Function nicht?
Kann mir jemand sagen worauf ich achten muss? Danke im Voraus.
Grüße-edie
Sub Test()
End Sub
wie nachfolgend schreibe, sieht man das Makro nicht mehr im Fenster "Makro ausführen" unterFunction Test()
End Function
Vielen Dank.wie nachfolgend schreibe, sieht man das Makro nicht mehr im Fenster "Makro ausführen" unter
Makroname. Das ist ja manchmal so gewünscht.
Dann verwende besser folgende Alternative :
Private Sub Test()
End sub
Durch das Schlüsselwort PRIVATE ist das Makro auch nicht mehr unter "Makro ausführen" sichtbar, aber es ist und bleibt ein MAKRO und keine FUNKTION ;-) !Sub Test()
Dim Ergebnis
Ergebnis=Doppelt(5)
Msgbox Ergebnis
End sub
Function Doppelt(Zahl)
Doppelt=2*Zahl
End Function
Sub und Function definieren:
Sub
(Subroutine) wird verwendet, um eine Gruppe von Anweisungen auszuführen. Sie hat keinen Rückgabewert.Function
hingegen gibt einen Wert zurück und kann Parameter entgegennehmen.Erstellen eines einfachen Makros:
Sub
zu erstellen, beginne mit Sub MakroName()
und beende mit End Sub
.Function
zu erstellen, beginne mit Function FunktionsName()
und beende mit End Function
.Sub Test()
MsgBox "Das ist ein Sub!"
End Sub
Function Quadrat(Zahl As Integer) As Integer
Quadrat = Zahl * Zahl
End Function
Unterschiede beachten:
Function
kannst Du das Ergebnis direkt in einer Zelle verwenden, während ein Sub
in der Regel nicht in Zellen eingetragen werden kann.Problem: Function
wird nicht im Makrofenster angezeigt.
Private Sub
oder Private Function
, wenn Du die Sichtbarkeit im Makrofenster einschränken möchtest. Beispiel:Private Sub Test()
End Sub
Problem: Rückgabewert fehlt.
Function
korrekt zuweist, z.B. Funktion = Wert
.Access VBA
für die Erstellung von privaten Subroutinen, die nicht von anderen Modulen aufgerufen werden können.In Excel kannst Du eine Public Function
erstellen, die in Formeln verwendet werden kann, z.B.:
Public Function Multiplikation(x As Double, y As Double) As Double
Multiplikation = x * y
End Function
Ein einfaches Sub:
Sub Begrüßung()
MsgBox "Hallo, willkommen in Excel VBA!"
End Sub
Eine Funktion zur Berechnung:
Function Summe(a As Double, b As Double) As Double
Summe = a + b
End Function
Verwendung von Sub und Function:
Sub Haupt()
Dim Ergebnis As Double
Ergebnis = Summe(5, 10)
MsgBox "Die Summe ist: " & Ergebnis
End Sub
Option Private Module
am Anfang Deines Codes, um die Sichtbarkeit von Subroutinen und Funktionen auf das aktuelle Modul zu beschränken.Public
und Private
Subroutinen solltest Du stets den Zugriff auf Deine Module im Blick behalten.ByRef
und ByVal
für die Parameterübergabe, um zu steuern, ob Änderungen an den übergebenen Werten vorgenommen werden können.1. Was ist der Hauptunterschied zwischen Sub und Function?
Der Hauptunterschied liegt darin, dass eine Function
einen Rückgabewert liefert, während eine Sub
lediglich Anweisungen ausführt.
2. Kann ich eine Subroutine in einer Funktion aufrufen?
Ja, Du kannst innerhalb einer Function
eine Sub
aufrufen. Dies ist nützlich, um bestimmte Aktionen auszuführen, bevor ein Wert zurückgegeben wird.
3. Was passiert, wenn ich ein Makro mit Function beginne?
Das Makro wird nicht im Fenster "Makro ausführen" angezeigt, da es als Funktion behandelt wird. Wenn Du ein unsichtbares Makro benötigst, kannst Du Private Sub
verwenden.
4. Wie kann ich sicherstellen, dass meine Funktion in Excel verwendet werden kann?
Stelle sicher, dass Deine Function
als Public
deklariert ist und sich in einem allgemeinen Modul befindet.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen