VB VBA Paramaterübergabe

tobomator

Well-known member
ID: 129556
L
28 Februar 2010
575
23
Hallo, ihr Programmierwütigen User...

keine 0815 Frage sondern eventuell was wie 0816 oder 0832
Es gibt Objecte in VBA und darum geht es.
Kann man und wenn ja wie Objecte übergeben ?
Folgendes möchte ich realisieren um den Quellcode zu reduzieren.

Viele Objecte haben den Status Visible. Und wenn man nun 40 Objecte hat, die man Zustandsgesteuert anzeigen/verstecken möchte, ist das manchmal mit 20 gleichzeitig halt ein 20ig zeiliges Stück Code.
Oder aber ein Sub Auruf dem ich eine Art Liste übergebe (die Namen der Objecte)

In der Sub sebst würde ich die Liste halt von Anfang bis Ende durchgehen und dann eben genau auf das Object gleichen Namens in der Liste un dessen Attribut Visible zugreifen, bzw. den Status ändern.

Hat da zufällig jemand was parad ?
ich bräuchte Hilfe beim Ansatz wie man aus dem Namen des Objects auf selbiges zugreift in einer schleife oder auch nur einfaches bsp.

Vielen Dank.
Ich nehme auch gern Links zu diesem speziellen Teil in VBA entgegen, wo ich beim Lesen verstehen kann, wie es funktioniert.

Bin leider in VBA seit 2 wochen tätig, aber insgesamt nur 4h bisher, da ich auf arbeit nur eine Excel Hilfe zu dem was ich will nutzen kann. Kein Inet und so... :(

Danke
tobi

Nachtrag:
gefunden hab ich erstmal folgendes zum thema vll.

Controls ist das übergeordnete Object was alle in UserForm enthaltenen Objecte Refernziert
Code:
Dim cnt As Control
For Each cnt In Controls
   If Typename(cnt) = "CheckBox" Then
      cnt.Visible = True/False
   End IF
Next cnt

Aber cnt geht nun alle Objecte durch. Ich würde ja gerne nur Spezielle haben wollen, die allerdings nicht Type-abhängig sein sollen.

Ich habe mehrere Buttons und mehrere ComboBoxen und anderes. Wenn ich folgendes mache
Code:
Dim Array (1 to 10) As string
Array(1) = "Button1"
Array(2) = "Button2"
Array(3) = "ComboBox1"
Frage am Rande, gibts nen generic Typen in VBA, der keine feste Größe kennt
Also Array(11) wäre Fehler da es nur bis 10 geht - feste Typengröße.
Kann man das Array z.B. generisch in seiner eigenen Größe anpassen ? Wenn ja wie ?

Der Clou halt, ich möchte den Namen aus dem Array als Object.Visible nutzen können.

Jemand ne Idee ?

Ich glaub den status visible dauernd zu ändern ist auch nicht die lösung, hab mich umentschieden und werde was nötig ist unr ausblenden nicht alles.
 
Zuletzt bearbeitet:
Als Einstieg, versuchs mal damit: https://www.herber.de/

Ansonsten kann ich dir aber nicht so richtig folgen...
Kannst du mal genauer schreiben, was für Objekte du so hast und was du damit jetzt genau machen willst (warum willst du sie ausblenden)?

Ansonsten kannst du Arrays mir Redim (preserve) dimensionieren.
Und eine Reihe von Checkboxen kann man ganz gut über Schleifen oder mit with in Kombination mit dem Namen ansprechen.