14. Drücken Sie weiterhin die F8 Taste, um die Prozedur zu
durchlaufen. Solange If Err den Wert True annimmt, wird der Code
innerhalb der If · End If Anweisung ausgeführt. Eine Warnung weist
den Anwender auf das Problem hin, und der Dialog ermöglicht nur das
Einfügen des Marker Bauteils.
Hinweis:
Mit der Taste F5 können Sie die Programmausführung fortfahren.
|
Collection
object (oParams) used:
Set oPartDef =
m_oOccMarker.Definition
Set oParams =
oPartDef.Parameters.UserParameters
Set oParam =
oParams.Item(1)
Collection object not used:
Set
oPartDef = m_oOccMarker.Definition
Set oParam =
oPartDef.Parameters.UserParameters.Item(1)
Hinweis:
Das Lokal-Fenster(Ansicht > Lokal-Fenster) stellt alle
Variablen mit den jeweils zugewiesenen Werten der aktuellen
Prozedur dar. Falls die Prozedur einer Form zugeordnet ist, so
wird auch das Me Objekt (die Form) im Lokal-Fenster
aufgeführt. Expandieren Sie das Me Objekt um alle
Formebenenobjekte und Variablen untersuchen zu können.
|
Zugriff auf Parameter
Das Ändern von Modellen
und benutzerdefinierten Parametern ist eine nützliche Funktion in
VBA Makros. Z.B. das Ändern des Werts einer Baugruppenabhängigkeit
Passend mit anschließender Berechnung basierend auf dem Passend Wert
(Bauteileposition, Geschwindigkeit, ·). In unserem Programm gibt der
Anwender einen Skalierungsfaktor in die Textbox txtScale ein, und
dieser Wert wird zum Aktualisieren der Anwenderparameter zur
Steuerung der Teilegröße des Marker Bauteils verwendet.
Die Variable Typ ComponentOccurrence speichert das Vorkommen des
Marker Bauteils in der Baugruppe. Das Makro limitiert das Vorkommen
des Marker Bauteils auf einmal. Normalerweise kann die Komponente
beliebig oft in einer Baugruppe vorkommen. Um auf die Parameter des
Marker Bauteil zugreifen zu können, benötigen wir das
PartComponentDefinition Objekt des Bauteils. Zum Glück hat das
ComponentOccurrence Objekt eine Definitionseigenschaft, die das
PartComponentDefinition Objekt für die Komponente offenlegt. Es ist
hierbei wichtig daß die Objekteigenschaften in der Objekthierarchie
auf der selben Ebene angeordnet sind. Normalerweise geben die
Applikationseigenschaften eines Objektes die Applikationsobjekte der
obersten Ebene zurück.
1. Erzeugen Sie in frmCog eine neue Private Unterroutine mit dem
Namen ScaleMarker.
2. Deklarieren Sie die folgenden Variablen (In Referenz auf die
Objekthierarchie in Bild 1):
Dim oPartDef As PartComponentDefinition
Dim oParams As
UserParameters
Dim oParam As UserParameter
Hinweis:
Es ist nicht immer notwendig die Variablen auf jeder Ebene der
Objekthierarchie in einer Prozedur zu definieren. Die Variable
oParams speichert die Auswahl von Benutzerparametern, während
die Variable oParam auf einen Benutzerparameter in der Auswahl
referenziert. Diese individuellen Parameter können direkt,
ohne die Deklaration einer Ebenenauswahlvariable verwendet
werden. Die beiden Möglichkeiten sind im folgenden Code
dargestellt.
Collection
object (oParams) used: Set oPartDef =
m_oOccMarker.Definition Set oParams =
oPartDef.Parameters.UserParameters Set oParam =
oParams.Item(1)
Collection object not
used: Set oPartDef =
m_oOccMarker.Definition Set oParam =
oPartDef.Parameters.UserParameters.Item(1) |
3. Fügen Sie den Code, wie in Bild 12 gezeigt in die ScaleMarker
Prozedur ein.