Showing results 1 to 4 of 4

Thread: Verknüpfungen eine Bildumschaltung-Funktion durch VBA ersetzen

  1. #1
    Join Date
    26.04.2010
    Posts
    95

    Default Verknüpfungen eine Bildumschaltung-Funktion durch VBA ersetzen

    Hallo zusammen,

    ich habe eine Bildumschaltung-Funktion durch VBA neu angelegt und diese Funktion mit einem Bild verknüpft:

       Set zPIC = zPRJ.DynPictures.Item("MOV_Drive_Brake4")
        Set zFCT = zPRJ.RtFunctions.Item("MOV1haupt_MOV_4_BU")
        If zFCT Is Nothing Then
            Set zFCT = zPRJ.RtFunctions.Create("MOV1haupt_MOV_4_BU", tpPicture)
        End If
        zFCT.DynProperties("Picture") = zPIC.name

    Ich möchte unter Filter Verknüpfungen ersetzen. Das heißt, die Parametern des verknüpften Bilds die mit einer Bezeichnung anfangen, sollten mit den Werten einer Variable ersetzt werden.

    Wie könnte man das durch VBA schaffen?

    Grüße,
    rln

  2. #2

    Default Re: Verknüpfungen eine Bildumschaltung-Funktion durch VBA ersetzen


  3. #3
    Join Date
    26.04.2010
    Posts
    95

    Default Re: Verknüpfungen eine Bildumschaltung-Funktion durch VBA ersetzen

    Danke, die Threads haben mir geholfen.

    Es funktioniert aber nicht wie es soll. Ich habe folgendes gemacht:

    For i = 0 To CLng(zFCT.DynProperties("PictSwitch.SubstiVar")) - 1
            strTemp = zFCT.DynProperties("PictSwitch.SubstiVar[" & i & "].Source")
            strTemp = Replace(strTemp, "MOV_Drive_", "MOV1auss")
            zFCT.DynProperties("PictSwitch.SubstiVar[" & i & "].Destination") = strTemp
    Next i

    Es funktioniert nur wenn über den Editor im Filter-Dialog „Verknüpfungen ersetzen“ schon Variablen geändert wurden. Das heißt, wenn vor der Ausführung der Schleife, etwas in den Bereichen "Source" und* "Destination" schon vorhanden ist.
    Wenn die Funktion neu über VBA angelegt wird, können diese Eigenschaften „noch“ nicht ausgelesen werden.

    Ist das ein Bug oder habe ich etwas falsch gemacht?

    Danke im Voraus,
    rln

  4. #4
    tobiassedlmeier Gast

    Default Re: Verknüpfungen eine Bildumschaltung-Funktion durch VBA ersetzen

    Um die Variablen und Funktionen zu substituieren, müssen erst in VBA die dynProperties hierfür erzeugt werden. Danach kann auch "Source" und "Destination" verknüpft werden.

    Im Folgenden finden Sie einen VBA Code, mit dem eine neue zenon Bildumschaltungsfunktion angelegt und eine Variable substituiert wird.

    Sub ChangeFunction()
    Dim zFCT As RtFunction
    Dim strTemp As String
    Dim i As Integer
    Dim strDest As String

    Set zFCT = MyWorkspace.ActiveDocument.RtFunctions.Create("Function 8", tpPicture)


    With zFCT
    .DynProperties("PictSwitch.Picture") = "PopUp"
    .CreateDynProperty ("PictFilter[0]")
    Debug.Print CLng(.DynProperties("PictSwitch.SubstiVar"))

    'Check if PictSwitch is substituted. if is "0" that means this is no
    'substitution. it is a normal picture switch
    If CLng(.DynProperties("PictSwitch.SubstiVar")) = 0 Then
    .CreateDynProperty ("PictSwitch.SubstiVar")
    End If

    'Now you set your 1st picture switch with substitution
    .DynProperties("PictSwitch.SubstiVar[0].Source") = "PopUp_10"
    .DynProperties("PictSwitch.SubstiVar[0].Destination") = "PopUp_12"

    End With

    End Sub

Similar Threads

  1. Mit Mouseover eine Funktion ausführen??
    By zuercher in forum VBA
    Replies: 4
    Last Post: 26th November 2009, 18:47
  2. Ungültiges Argument bei Funktion Rezept Manager
    By affoltep in forum zenon Service Engine Supervisor
    Replies: 2
    Last Post: 15th September 2009, 12:55
  3. Symbol - Verknüpfung ersetzen
    By alice18 in forum VBA
    Replies: 1
    Last Post: 10th December 2008, 15:21
  4. Replies: 5
    Last Post: 16th October 2008, 07:56
  5. Replies: 3
    Last Post: 29th July 2008, 09:24

Posting Rules

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •