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.