Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Unterschied zwischen Private Sub und Sub?

Unterschied zwischen Private Sub und Sub?
Vanessa
Hallo, kann mir mal jemand von Euch den Unterschied zwischen Private Sub und Sub erklären? Danke im voraus
Vanessa
Anzeige

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

Betreff
Benutzer
Anzeige
AW: Unterschied zwischen Private Sub und Sub?
xXx
Hallo,
aus der Hilfe:
Private: Optional. Auf die Sub-Prozedur kann nur durch andere Prozeduren aus dem Modul zugegriffen werden, in dem sie deklariert wurde.
Gruß aus'm Pott
Udo
http://www.excelerator.de

P.S. Das Forum lebt auch von den Rückmeldungen an die Antworter!
Anzeige
AW: Unterschied zwischen Private Sub und Sub?
Stefan
Die Private sub ist nur im Modul gültig und kann nicht von Außen aufgerufen werden.
Die Sub (ist das gleiche wie Public Sub) kann man von überall aus aufrufen.
Die private Sub erscheint nicht mal als Makro in der Liste.
Stefan
AW: Unterschied zwischen Private Sub und Sub?
01.04.2004 14:11:16
Vanessa
Hallo, vielen Dank für die Antwort. Schönen Tag noch
Vanessa
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Unterschied zwischen Private Sub und Sub in Excel VBA


Schritt-für-Schritt-Anleitung

  1. Definitionen verstehen:

    • Private Sub: Eine Sub-Prozedur, die nur innerhalb des Moduls aufgerufen werden kann, in dem sie definiert wurde. Sie ist nicht von außerhalb sichtbar.
    • Public Sub: Eine Sub-Prozedur, die von überall im Projekt aufgerufen werden kann.
  2. Wie man eine Private Sub erstellt:

    Private Sub MeinePrivateSub()
       ' Dein Code hier
    End Sub
  3. Wie man eine Public Sub erstellt:

    Public Sub MeinePublicSub()
       ' Dein Code hier
    End Sub
  4. Aufruf der Sub-Prozeduren:

    • Um eine Public Sub aufzurufen, kannst Du einfach den Namen verwenden, egal wo Du bist:
      Call MeinePublicSub
    • Eine Private Sub kann nur innerhalb des gleichen Moduls aufgerufen werden.

Häufige Fehler und Lösungen

  • Fehler: „Sub ist nicht definiert“ beim Aufruf einer Private Sub aus einem anderen Modul.

    • Lösung: Stelle sicher, dass Du die Sub nicht außerhalb des Moduls aufrufst, in dem sie definiert ist.
  • Fehler: Private Sub erscheint nicht in der Makroliste.

    • Lösung: Das ist normal, da Private Subs nicht für externe Aufrufe gedacht sind. Verwende stattdessen eine Public Sub.

Alternative Methoden

  • Verwendung von Funktionsmodulen: Wenn Du eine Funktion benötigst, die von überall aufgerufen werden kann, solltest Du eine Public Function anstelle einer Sub verwenden.

  • Zugriff auf Variablen: Um Daten zwischen verschiedenen Sub-Prozeduren zu teilen, kannst Du Modulebenutzerdefinierte Variablen oder Public Variablen verwenden.


Praktische Beispiele

  1. Private Sub Beispiel:

    Private Sub Button1_Click()
       MsgBox "Dies ist eine Private Sub."
    End Sub
  2. Public Sub Beispiel:

    Public Sub StarteMakro()
       Call MeinePrivateSub
    End Sub

In diesem Beispiel ruft die Public Sub die Private Sub auf, was zeigt, wie der Zugriff funktioniert.


Tipps für Profis

  • Nutze Private Sub für interne Logik, die nicht von außen aufgerufen werden sollte. Dies hilft, die Modularität Deines Codes zu verbessern und Konflikte zu vermeiden.
  • Verwende Public Sub für Funktionen, die von mehreren Modulen oder von Benutzern aufgerufen werden müssen.
  • Halte Deinen Code sauber und gut dokumentiert, um Verwirrung über den Zugriff auf die verschiedenen Subs zu vermeiden.

FAQ: Häufige Fragen

1. Was ist der Hauptunterschied zwischen Private Sub und Public Sub? Der Hauptunterschied liegt in der Sichtbarkeit: Private Subs sind nur innerhalb ihres Moduls sichtbar, während Public Subs von überall aufgerufen werden können.

2. Warum sollte ich Private Subs verwenden? Private Subs sind nützlich, um bestimmte Funktionen zu kapseln und die Interaktion mit anderen Modulen zu verhindern, was die Wahrscheinlichkeit von Fehlern verringert.

3. Kann ich eine Private Sub von einem anderen Modul aus aufrufen? Nein, das ist nicht möglich. Private Subs sind nur innerhalb des Moduls zugänglich, in dem sie definiert sind.

4. Wie kann ich eine Private Sub testen? Um eine Private Sub zu testen, kannst Du eine Public Sub erstellen, die sie aufruft, oder sie direkt im Modul testen, in dem sie sich befindet.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige