VBS: mehrere ClickBox Objekte automatsch füllen (ohne Array)
Hallo Forum,
ich bin "neu" hier, auch wenn ich hier schon oft anwesend war und hilfreiche Tipps fand. Heute bin ich leider bezüglich meines Problems nicht fündig geworden.
Ich arbeite mit Mentor DxDesigner / Expedition und möchte mir da etwas Arbeitserleichterung verschaffen und scheitere an einer mMn einfachen Sache in VBS die in Windows-Batch problemlos möglich ist. Und zwar möchte ich einen Befehl (Objekt) mit einer Variablen dynamisch anpassen, um alle nötigen Objekte in einer Schleife zu bearbeiten. Leider lassen sich die Objekte nicht wie ein Array mit Klammern bezeichnen.(Die unschöne Lösung wäre alle möglich Objekte nacheinander explizit abzuarbeiten)
Im Batch ist sowas recht einfach lösbar, daher nahm ich an, es geht auch in VBS irgendwie(?).
Könnt ihr mir bitte helfen?
DANKE
ich bin "neu" hier, auch wenn ich hier schon oft anwesend war und hilfreiche Tipps fand. Heute bin ich leider bezüglich meines Problems nicht fündig geworden.
Ich arbeite mit Mentor DxDesigner / Expedition und möchte mir da etwas Arbeitserleichterung verschaffen und scheitere an einer mMn einfachen Sache in VBS die in Windows-Batch problemlos möglich ist. Und zwar möchte ich einen Befehl (Objekt) mit einer Variablen dynamisch anpassen, um alle nötigen Objekte in einer Schleife zu bearbeiten. Leider lassen sich die Objekte nicht wie ein Array mit Klammern bezeichnen.(Die unschöne Lösung wäre alle möglich Objekte nacheinander explizit abzuarbeiten)
Sub Fuellen(VarAnzahl, MaxBreite)
Dim i
' CheckBoxen (pro Variante)
For i = 1 To VarAnzahl
With CheckBox_Variante & i 'das Objekt heißt "CheckBox_Variante1", CheckBox_Variante2" ...ect
.Text "Variantename " & i & " - Test Text"
.Enable = True
.Visible = True
End With
Next
End Sub
Im Batch ist sowas recht einfach lösbar, daher nahm ich an, es geht auch in VBS irgendwie(?).
Batch Beispiel
set var1=ec
set var2=ho
REM Befehl direkt zusammengesetzt, Ausgabe "Test Text"
%var1%%var2% Test Text
Könnt ihr mir bitte helfen?
DANKE
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 234417
Url: https://administrator.de/contentid/234417
Ausgedruckt am: 22.11.2024 um 12:11 Uhr
5 Kommentare
Neuester Kommentar
Hallo mobby,
so wie du das vorhast geht dies nicht. Du könntest z.B. über die Controls iterieren und dann nach dem Namen prüfen.
Wie das in deinem Programm Mentor jetzt explizit aussehen muss weiß ich nicht, aber generell könnte man es so schreiben:
Grüße Uwe
so wie du das vorhast geht dies nicht. Du könntest z.B. über die Controls iterieren und dann nach dem Namen prüfen.
Wie das in deinem Programm Mentor jetzt explizit aussehen muss weiß ich nicht, aber generell könnte man es so schreiben:
for each control in deineForm.Controls
if Left(control.Name,17) = "CheckBox_Variante" then
nummer = Mid(control.Name,18)
control.Text = "Variantename " & nummer & " - Test Text"
control.Enable = True
control.Visible = True
End if
Next
Zitat von @mobby83:
vielen Dank. Ich habe mich mMn nicht ausreichend genau ausgedrückt. Ich versuche es nochmal
doch das hast duvielen Dank. Ich habe mich mMn nicht ausreichend genau ausgedrückt. Ich versuche es nochmal
Mein Problem ist, dass ich gern "ObjektName" & i zusammengesetzt nutzten möchte, denn das zu bedienende
Objekt heißt ObjektName1, ObjektName2, ObjektName3, usw. Leider fand ich bisweilen keine Möglichkeit die
Objektname dynamisch zu verändern.
wie bereits geschrieben geht dies mit VBS so nichtObjekt heißt ObjektName1, ObjektName2, ObjektName3, usw. Leider fand ich bisweilen keine Möglichkeit die
Objektname dynamisch zu verändern.
"Controls" anspreche. Nach etwas suchen, denke ich diese Auflistung gibts nicht
Würde ich nochmal genau nachsehen, denn sowas gibt es fast in jeder Umgebung wo mit Steuerelementen gearbeitet wird...Alternativ suche im Funktionsarchiv des Programms nach einer Funktion ähnlich wie Controls("Name_des_Controls") womit sich das das Steuerelement mit seinem Namen ansprechen lässt, dann kannst du wieder mit deiner Schleife arbeiten.
In Excel VBA auf einer Form geht das z.B. so
for i = 0 to 10
set deinControl = Controls("Variante" & i)
With deinControl
...
....
Next
Next
Grüße Uwe