Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Wie Makros verstecken

Wie Makros verstecken
Holger
Hi Forumsgemeinde,
seltsames Problem. Makros innerhalb eines VBA Projekts werden ja auch unter ADD-INS->MAKROS angezeigt. Ich will das aber nicht. Definiere ich die Makros als Private Sub, sind sie zwar nicht mehr unter Add-Ins sichtbar, dafür funktionier der Aufruf der Makros innerhalb andere Makros nicht mehr.
Wie kann man das nun lösen?
Beispiel, das Makro TEST2 kann nicht mehr aufgerufen werden, da als Private definiert.
Sub Test
TEST2 'Makro TEST2.
End Sub
Private Sub TEST2
blabla
End Sub

Anzeige

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

Betreff
Benutzer
Anzeige
Option Private Module ?
14.04.2010 19:07:03
ransi
hallo
so?
Option Explicit
Option Private Module

Public Sub test()
MsgBox "makro"
End Sub


ransi
Anzeige
AW: Wie Makros verstecken
14.04.2010 19:08:26
Backowe
Hi,
Sub Test()
Call TEST2 'Makro TEST2.
End Sub
Private Sub TEST2()
MsgBox Now
End Sub

Gruß Jürgen
AW: Wie Makros verstecken
15.04.2010 10:50:48
Daniel
Hi
entweder wie schon beschrieben über OPTION PRIVATE MODULE für alle Makros, die in diesem Modul stehen, oder wenn nur einzelne Makros unsichtbar gemacht werden sollen, über diesen einfachen Trick:
Sub DiesesMakroSollUnsichtbarSein(xxx as boolean)
End Sub
Sub Test
Call DiesesMakroSollUnsichtbarSein(True)
End Sub

also einfach eine Übergabevariable definieren, schon wird das Makro in den Excel-Menüs nicht mehr angezeigt, da es hier nicht möglich ist, eine Variable zu übergeben.
Gruß, Daniel
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Makros in Excel verstecken und verwalten


Schritt-für-Schritt-Anleitung

  1. Makros als Private Sub definieren: Um ein Makro in Excel zu verstecken, kannst du es als Private Sub deklarieren. Dadurch wird es nicht mehr im Menü „Add-Ins“ angezeigt. Beispiel:

    Private Sub TEST2()
       ' Dein Code hier
       MsgBox "Makro TEST2 ausgeführt"
    End Sub
  2. Aufruf eines privaten Makros: Wenn du dennoch private Makros innerhalb anderer Makros aufrufen möchtest, definiere die aufrufenden Makros als Public Sub. So wird der Aufruf erfolgreich sein.

    Public Sub Test()
       Call TEST2 'Aufruf des privaten Makros
    End Sub
  3. Option Private Module verwenden: Wenn du alle Makros in einem Modul verstecken möchtest, kannst du Option Private Module am Anfang deines Moduls hinzufügen. Dadurch sind alle enthaltenen Makros privat.

    Option Explicit
    Option Private Module

Häufige Fehler und Lösungen

  • Problem: Makros sind trotz Private Sub noch sichtbar.
    Lösung: Stelle sicher, dass das Modul die Zeile Option Private Module enthält.

  • Problem: Aufruf eines privaten Makros funktioniert nicht.
    Lösung: Überprüfe, ob das aufrufende Makro als Public Sub deklariert ist.


Alternative Methoden

  • Verwendung von Übergabevariablen: Eine Möglichkeit, Makros unsichtbar zu machen, besteht darin, Übergabevariablen zu nutzen. Wenn du eine Variable definierst, wird das Makro nicht in den Excel-Menüs angezeigt.

    Sub DiesesMakroSollUnsichtbarSein(xxx As Boolean)
      ' Dein Code hier
    End Sub
    Sub Test()
      Call DiesesMakroSollUnsichtbarSein(True)
    End Sub

Praktische Beispiele

Hier sind einige VBA Makros Beispiele, die die oben genannten Methoden verwenden:

  1. Öffentliches Makro, das ein privates Makro aufruft:

    Public Sub HauptMakro()
       Call TEST2
    End Sub
    
    Private Sub TEST2()
       MsgBox "Privates Makro wurde ausgeführt"
    End Sub
  2. Makro mit Übergabevariable:

    Sub UnsichtbaresMakro(xxx As Boolean)
       MsgBox "Dieses Makro ist nicht sichtbar"
    End Sub
    
    Sub Aufruf()
       Call UnsichtbaresMakro(True)
    End Sub

Tipps für Profis

  • Verwende Option Private Module, um ein ganzes Modul zu schützen.
  • Halte deine Makros gut dokumentiert, um die Wartung zu erleichtern, insbesondere wenn du mehrere Public und Private Sub verwendest.
  • Nutze VBA Error Handling, um mögliche Laufzeitfehler in deinen Makros abzufangen und zu verwalten.

FAQ: Häufige Fragen

1. Wie verstecke ich ein einzelnes Makro in Excel?
Du kannst ein Makro als Private Sub deklarieren oder eine Übergabevariable verwenden, um es unsichtbar zu machen.

2. Warum sind meine privaten Makros nicht sichtbar, aber können nicht aufgerufen werden?
Private Makros können nur innerhalb des Moduls, in dem sie definiert sind, aufgerufen werden. Stelle sicher, dass dein aufrufendes Makro als Public Sub deklariert ist.

3. Was passiert, wenn ich Option Private Module verwende?
Alle Makros in diesem Modul werden privat und nicht mehr im Menü „Add-Ins“ angezeigt.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige