Verwijderen van tekstvakken in Word met VBA

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • mc_maarten
  • Registratie: Augustus 2013
  • Laatst online: 10:34
Beste Tweakers,

Ik probeer tekstvakken in een Word-document te verwijderen op basis van specifieke eigenschappen, zoals tekstinhoud, afmetingen en doorzichtigheid. Ik heb verschillende VBA-macro's geprobeerd, maar geen enkele lijkt te werken.

Ik heb geprobeerd te zoeken op tekstinhoud en specifieke afmetingen, en ik heb ook een macro gebruikt om tekstvakken met een doorzichtigheid van 80% te verwijderen. Helaas heb ik nog geen succes gehad.

Hier is een voorbeeld van de laatste macro die ik heb geprobeerd:
code:
1
2
3
4
5
6
7
8
9
10
11
Sub VerwijderTekstvakMetDoorzichtigheid()
    Dim shp As Shape
    Dim i As Long
    
    For i = ActiveDocument.Shapes.Count To 1 Step -1
        Set shp = ActiveDocument.Shapes(i)
        If shp.Type = msoTextBox And shp.Fill.Transparency = 0.8 Then
            shp.Delete
        End If
    Next i
End Sub


Is er iemand die me kan helpen begrijpen waarom deze macro niet werkt of die mogelijk een andere benadering kan voorstellen om tekstvakken met deze specifieke eigenschappen te verwijderen?

Alle reacties


Acties:
  • 0 Henk 'm!

  • Accretion
  • Registratie: April 2014
  • Laatst online: 12:48

Accretion

⭐⭐⭐⭐⭐ (5/5)

Als je een van de twee voorwaarden in de IF zet, werkt het dan wel?

Ofwel, kun je wel all textboxes of alle shapes met 80% transparantie verwijderen; los van elkaar?

Probeer eens zonder de IF, gewoon die loop die alle shapes verwijderd; werkt dat wel?

Ik kan het op m'n telefoon niet uitproberen, maar met bovenstaande stappen zou je relatief makkelijk moeten kunnen vinden waar het probleem zit?

[ Voor 41% gewijzigd door Accretion op 06-01-2024 18:43 ]


Acties:
  • 0 Henk 'm!

  • mc_maarten
  • Registratie: Augustus 2013
  • Laatst online: 10:34
bedankt voor je tip, mijn input was niet helemaal goed. het was namelijk een textframe -.- gelukkig werkt het nu

code:
1
2
3
4
5
6
7
8
9
10
11
Sub VerwijderTekstvakMetVullingEnContour()
    Dim shp As Shape
    
    For Each shp In ActiveDocument.Shapes
        If shp.Type = msoTextBox Then
            If shp.TextFrame.TextRange.Font.Line.Visible = msoTrue Then
                shp.Delete
            End If
        End If
    Next shp
End Sub

Acties:
  • 0 Henk 'm!

  • Kriekel
  • Registratie: Maart 2017
  • Laatst online: 13:09
Wat is je doel? Tekst kan namelijk op meerder plekken staan, ook op voor mensen niet leesbaar plaatsen. Bijvoorbeeld voor screen readers of indexing.

Als je geheimen of persoonlijke informatie probeert te verwijderen kun je beter een bestaande tool gebruiken, of je blijft het risico lopen om deze gegevens toch te lekken.

Acties:
  • 0 Henk 'm!

  • doskabouter
  • Registratie: Oktober 2004
  • Laatst online: 30-09 16:38
Zou het kunnen doordat je je loop hebt omgeschreven van een for (met misschien ten onrechte de gedachte dat het 1e element nr 1 is ipv 0) naar een foreach?

Het grote voordeel van windows is dat je meer dos-boxen kan openen