Inhoudbesturingselement koppelen

Status
Niet open voor verdere reacties.

basAwa

Gebruiker
Lid geworden
5 nov 2014
Berichten
19
Beste allemaal,

In Word wil ik graag een inhoudbesturingselement koppelen dat net zo werkt als Invoegen>documenteigeschappen (Auteur, Bedrijf, Categorie, etc.).
Het lukt mij alleen nog niet om dit werkend te krijgen.


Knipsel.PNG

Het zou fijn zijn als iemand het verlossende antwoord heeft.:d

Met vriendelijke groet,
 
Laatst bewerkt:
Je geeft niet helemaal aan wat je bedoelt, maar zo te zien werk je met de ContentControls, en die gebruik ik zelf ook. Een voorbeeldje:
Code:
Dim ctlCont As ContentControl
    If ActiveDocument.ContentControls.Count = 0 Then Exit Function
    For Each ctlCont In ActiveDocument.ContentControls
        With ctlCont
            If .Tag = "Behandelaar" Then
                .range.text = sBehandelaar
            End If
            If .Tag = "Datum" Then .Range.text = Date
        End With
    Next ctlCont
Ik vul hier 2 Inhoudsbesturingselementen die resp. als label 'Behandelaar' en 'Datum' hebben. Je moet ze ergens op kunnen pinnen, en <label> is dus Tag. En op basis daarvan kun je ze onderscheiden en vullen.
 
Eigenlijk komt het er op neer dat ik besturingselementen wil koppelen zodat ik deze op meerde plaatsen in mijn document kan zetten en dat ze dan automatisch veranderen als ik een besturingselement aanpas.
 
Volgens mij kan dat niet. Sowieso werkt dat dan top-down, dus je moet dan de eerste veranderen en dan loopt de rest mee. Of begrijp ik je goed, en wil je elk exemplaar kunnen veranderen, en dan de overige ook laten aanpassen?
 
Nou ik wil dat dan invoeren met inhoudsbesturingselement. Deze wil ik dan kunnen kopieren en dan aan elkaar koppelen. Het is met tot nu toe gelukt door een Documenteigeschap te bewerken en dan te kopieren. Deze Documenteigeschappen zijn wel al automatisch gekoppeld dus deze verandere automatisch wanneer ik deze aanpas. Alleen dit kan volgens mij ook op een andere manier alleen weet ik nog niet precies hoe.
 
Deze Documenteigenschappen zijn wel al automatisch gekoppeld dus deze veranderen automatisch wanneer ik deze aanpas.
Is de n kapot ? :)
Maar zonder gekheid: een document eigenschap is één veldje in (inderdaad) de collectie Documenteigenschappen. Dat kun je één keer opvragen in een document, of 30 keer, dat blijft dan natuurlijk dezelfde eigenschap met dezelfde waarde. Daar zit geen enkele koppeling in verder. Als je tekst in een document wilt koppelen, is het een heel ander probleem. Dat kan dus wel met een macro geregeld worden, zoals ik al heb laten zien.

Gelukkig kun je ContentControls dezelfde tag (label) geven, en op basis daarvan kun je ook nog wel wat spelen. Ik heb in een proef een aantal ContentControls gemaakt, en die verschillende labels gegeven. Eén control heeft het label Voorbeeld, en een aantal andere het label VoorbeeldKopie. Met onderstaande macro (kun je in een willekeurige module zetten) kun je de tekst uit de control <Voorbeeld> overnemen in de controls met het label <VoorbeeldKopie>.
Code:
Sub ContentControlBijwerken()
Dim ctlCont As ContentControl
Dim sBasisTekst As String
    If ActiveDocument.ContentControls.Count = 0 Then Exit Sub
    For Each ctlCont In ActiveDocument.ContentControls
        Do While sBasisTekst = ""
            With ctlCont
                If .Tag = "Voorbeeld" Then
                    sBasisTekst = .Range.Text
                    Exit For
                End If
            End With
        Loop
    Next ctlCont
    For Each ctlCont In ActiveDocument.ContentControls
        With ctlCont
            If .Tag = "VoorbeeldKopie" Then .Range.Text = sBasisTekst
        End With
    Next ctlCont
End Sub
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan