VBA Bild per Button ein- / ausblenden (Word)

  • Word

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von petaod.

    VBA Bild per Button ein- / ausblenden (Word)

    Hallo zusammen,

    Ich habe ein kleines Problem.
    Ich habe ein Logo in die Kopfzeile, welches ich per Buttonclick ein- / ausblenden will.
    Leider kenn ich mich in VBA im Zusammenhang mit Word nicht sehr gut aus.
    Daher wäre ich froh, wenn Ihr mir helfen könntet.

    EDIT:
    Ich habe hier noch einen Code, denn ich selber gemacht habe.
    Dies funktioniert, aber nur wenn das Bild mit einer der Layoutoptionen "Mit Textumbruch* gesetzt ist.

    Quellcode

    1. Private Sub CommandButton1_Click()
    2. Dim Form As Shape
    3. Set Form = ActiveDocument.Sections(1).Headers(wdHeaderFooterPrimary).Shapes(1)
    4. With CommandButton1
    5. If .Caption = "Ausblenden" Then
    6. .Caption = "Einblenden"
    7. Form.Visible = msoFalse
    8. ElseIf .Caption = "Einblenden" Then
    9. .Caption = "Ausblenden"
    10. Form.Visible = msoTrue
    11. End If
    12. End With
    13. End Sub

    Freundliche Grüsse

    Ovoxo

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Ovoxo“ ()

    Ovoxo schrieb:

    Dies funktioniert, aber nur wenn das Bild mit einer der Layoutoptionen "Mit Textumbruch* gesetzt ist.
    Was passiert, wenn kein Textumbruch gesetzt ist?
    Lässt sich die Visible-Property des Shape nicht verändern? Hast du ein anderes Shape?
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Es ist ja auch mutig, ein Shape so hart codiert zu adressieren:
    ActiveDocument.Sections(1).Headers(wdHeaderFooterPrimary).Shapes(1)
    Wenn du es nicht namentlich ansprechen kannst, dann loope zur Laufzeit durch die verschiedenen Shape-Auflistungen und ziehe dir das richtige raus.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --

    Ovoxo schrieb:

    Hast du da vllt. ein Beispiel
    Leider nein.
    Vielleicht wirst du bei Google fündig.

    Jedenfalls ist dein Problem, dass dein Shape anders adressiert werden muss und du musst halt rauskriegen, wie.
    Ich würde den Debugger zu Hilfe nehmen und mit die Inhalte der einzelnen Objekte mal anschauen.
    Angefangen bei ActiveDocument.Sections
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --