VBA code (Macro) voor logo's in en uitschakelen in Word

Status
Niet open voor verdere reacties.

wimstronks

Gebruiker
Lid geworden
26 mei 2006
Berichten
8
Wij gebruiken binnen ons bedrijf Word 2003 en 2007 voor het opstellen van o.a. offertes. Deze offertes worden afgedrukt op briefpapier waarop o.a. onze logo's staan. Wanneer offertes per mail als bijlage worden verzonden dan willen wij in deze offertes onze logo's opnemen. Het elke keer toevoegen van logo's of het verwijderen van de logo's vinden wij omslagtig.
Ons sjabloon heeft kop en voetteksten waarvan de eerste pagina afwijkend is. In deze kopteksten hebben wij het logo opgenomen. Dus ��n logo in de eerste voettekst en ��n logo in de koptekst van de volgende pagina's.
Nu heb ik een macro gemaakt welke beide logo's selecteerd en de helderheid op 100 % (logo uit) of op 50% (logo aan) insteld waardoor de logo's zichtbaar worden of niet zichtbaar worden. Dus ook wanneer het logo niet zichtbaar wordt blijft de afbeelding in het document aanwezig.

De VBA code voor deze macro is:

Code:
Sub Logo_uit()
'
' Logo_uit Macro
'
'
    If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
        ActiveWindow.Panes(2).Close
    End If
    If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _
        ActivePane.View.Type = wdOutlineView Then
        ActiveWindow.ActivePane.View.Type = wdPrintView
    End If
    ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
    Selection.HeaderFooter.Shapes("Picture 34").Select
    Selection.ShapeRange.PictureFormat.Brightness = 1#
    Selection.HeaderFooter.Shapes("Picture 35").Select
    Selection.ShapeRange.PictureFormat.Brightness = 1#
End Sub
Sub Logo_aan()
'
' Logo_aan Macro
'
'
    If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
        ActiveWindow.Panes(2).Close
    End If
    If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _
        ActivePane.View.Type = wdOutlineView Then
        ActiveWindow.ActivePane.View.Type = wdPrintView
    End If
    ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
    Selection.HeaderFooter.Shapes("Picture 34").Select
    Selection.ShapeRange.PictureFormat.Brightness = 0.5
    Selection.HeaderFooter.Shapes("Picture 35").Select
    Selection.ShapeRange.PictureFormat.Brightness = 0.5
End Sub

Vraag 1: Hoe kan ik in plaats van "Picture 34" of "Picture 35 2" alle afbeeldingen in de beide kopteksten selecteren?
Vraag 2: Hoe kan ik in mijn document achter het nummer van mjn afbeelding komen?
Alvast bedankt voor jullie inbreng!
 
Laatst bewerkt door een moderator:
Je kunt gewoon door de afbeeldingen lopen met een for loop t/m shapes.count.

Je kunt dan ook de naam zien mbv: .shapes(i).name waar 'i' de for counter is.
 
Bedankt Wampier voor de snelle reactie,
Echter heb ik verder zeer beperkte kennis van VBA. De code heb ik slechts geplakt nadat ik een werkende macro heb opgenomen.
Hoe kan ik de door jouw voorgestelde code inlementeren in mijn script?
 
Je kunt dit eens proberen:

Code:
For i = 1 To Selection.HeaderFooter.Shapes.Count
    Selection.HeaderFooter.Shapes(i).Range.PictureFormat.Brightness = 1
Next i

in plaats van de selection...shapes / selection...sharerange statements. Je kunt de huidige regels het best op commentaar zetten. Als alles goed gaat worden nu alle shapes veranderd.
 
Range is niet te combinerenmet PictureFormat, ik krijg hier een foutmelding.

Ik heb nu SlectAll gebruikt. Shapes die niet in de kop of voetteksten staan blijven ongemoeid. De werkende code is dan als volgt:

Sub Logo_uit()
'
' Logo_uit Macro
'
'
If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
ActiveWindow.Panes(2).Close
End If
If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _
ActivePane.View.Type = wdOutlineView Then
ActiveWindow.ActivePane.View.Type = wdPrintView
End If
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
Selection.HeaderFooter.Shapes.SelectAll
Selection.ShapeRange.PictureFormat.Brightness = 1
End Sub
Sub Logo_aan()
_________________________________________________________________________
'
' Logo_aan Macro
'
'
If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
ActiveWindow.Panes(2).Close
End If
If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _
ActivePane.View.Type = wdOutlineView Then
ActiveWindow.ActivePane.View.Type = wdPrintView
End If
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
Selection.HeaderFooter.Shapes.SelectAll
Selection.ShapeRange.PictureFormat.Brightness = 0.5
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan