Word VBA: wissen afbeelding met behoud van het ‘inhoudsbesturingselement’

Status
Niet open voor verdere reacties.

Tonex

Gebruiker
Lid geworden
6 jul 2012
Berichten
43
Helpmij :(

In een formulier (beveiligd als bewerking beperken formulier invullen) heb ik de mogelijkheid om afbeeldingen in te voegen d.m.v. inhoudsbesturingselement voor afbeeldingen.

Nu zou ik graag d.m.v. VBA enkele afbeeldingen (dus niet alle) ‘leeg’ willen maken.
Dus wissen maar met behoud van het ‘inhoudsbesturingselement voor afbeeldingen’.

Dit om het formulier deels te kunnen leegmaken. Tekstvelden, keuze-dropdown en selectie-checkbox kan ik 'wissen' omdat deze met bladwijzers te definiëren zijn, maar met afbeelding weet ik niet hoe ik dit moet aanpakken.

Is dit mogelijk m.b.v. VBA ?

...voorbeeld 'test formulier - VBA wissen afbeelding.docx' is nog zonder VBA en nog niet als .docm opgeslagen.

Graag hulp !
 

Bijlagen

  • test formulier - VBA wissen afbeelding.docx
    23,3 KB · Weergaven: 37
Laatst bewerkt:
Je kunt met een loop door alle contentcontrols heenlopen, en ze desgewenst leegmaken.
Code:
Dim oCC As ContentControl
    For Each oCC In ActiveDocument.ContentControls
        If oCC.Type = wdContentControlPicture Then
            If oCC.Range.InlineShapes.Count > 0 Then
                Select Case oCC.Title
                    Case "Afbeelding 1", "Afbeelding 3", "Afbeelding 5"
                        oCC.Range.InlineShapes(1).Delete
                End Select
            End If
        End If
    Next
 
Hallo OctaFish,

Jouw code toegepast in het document 'test formulier - VBA wissen afbeelding.docm' (zie bijlage).
Het geeft een foutmelding op regel "oCC.Range.InlineShapes(1).Delete".

Graag de foutmelding in het test-document bekijken ...

Bij voorbaat dank !!
 

Bijlagen

  • test formulier - VBA wissen afbeelding.docm
    27,1 KB · Weergaven: 26
Je logo is geen afbeelding. Vervang het eerste object door een afbeelding, en de macro werkt prima.
 
Ik weet niet wat je bedoeld, een afbeelding via "Invoegen' > 'Afbeelding' (zoals nu in test document) is bij een beveiligd formulier niet te 'wijzigen'.
Via 'Ontwikkelaars' > 'Ontwerpmodus' > 'Besturingselementen' > 'Inhoudsbesturingselement voor afbeeldingen' wel.
Benaming 'Afbeelding 1' onder 'Bijschrift toevoegen' gezet.

Maar ??? Zal wel niet juist zijn :confused:
 

Bijlagen

  • test formulier - VBA wissen afbeelding V2.docm
    72,3 KB · Weergaven: 22
De code werkt inderdaad wel, echter niet wanneer het formulier is beveiligd d.m.v. 'Bewerking beperken' > 'Formulieren invullen'.

Is dit te realiseren ?
 
Bij mij werkt-ie prima, als het formulier beveiligd is. Gebruik je wel de goede beveiligingsopties?
 
Heb er voor de zekerheid een extra check bij gezet.
 

Bijlagen

  • test formulier - VBA wissen afbeelding V2.docm
    71,2 KB · Weergaven: 30
Afbeeldingen worden nu wel gewist, maar ook de 'oude tekstvelden' worden ook gewist door het script.

Zie voorbeeld document...
 

Bijlagen

  • test formulier - VBA wissen afbeelding V3.docm
    68,1 KB · Weergaven: 27
TekstVelden worden gereset, maar dat kun je omzeilen.
Code:
    ActiveDocument.Protect wdAllowOnlyFormFields, NoReset:=True
 
VBA code werkt TOP OctaFish :thumb:
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan