Thema Datum  Von Nutzer Rating
Antwort
25.01.2017 11:46:26 Phil
Solved
25.01.2017 12:25:26 Werner
NotSolved
25.01.2017 12:44:25 BigBen
NotSolved
Blau Textfeld überprüfen, danach drucken
25.01.2017 12:41:22 BigBen
NotSolved
25.01.2017 13:05:20 Phil
NotSolved
25.01.2017 13:37:39 BigBen
NotSolved

Ansicht des Beitrags:
Von:
BigBen
Datum:
25.01.2017 12:41:22
Views:
744
Rating: Antwort:
  Ja
Thema:
Textfeld überprüfen, danach drucken

Hallo,

vor dem Zugriff auf das Shape "Text Box 2" muss erst getestet werden, ob welche vorhanden sind:

    If ActiveDocument.Shapes.Count > 0 Then
        'ActiveDocument.Shapes("Text Box 2").Select
        'Selection.ShapeRange.Fill.Visible = msoFalse
        ActiveDocument.Shapes("Text Box 2").Fill.Visible = msoFalse
    End If

Die Auskommentierten Zeilen können eventuell durch den nachfolgenden Befehl ersetzt werden. Das Ergebnis dürfte identisch sein.

Wenn es möglich ist, sollte im VBA-Code auf Select-Anweisungen verzichtet werden. Dadurch läuft dieser performanter und fehlerfreier ab.

Eventuell funktioniert auch folgende VBA-Code:

    ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
    With Selection.HeaderFooter.Shapes.AddTextEffect(PowerPlusWaterMarkObject1, _
        "Kopie", "Times New Roman", 1, False, False, 0, 0)
        .Name = "PowerPlusWaterMarkObject1"
        .TextEffect.NormalizedHeight = False
        .Line.Visible = False
        .Fill.Visible = True
        .Fill.Solid
        .Fill.ForeColor.RGB = RGB(192, 192, 192)
        .Fill.Transparency = 0.1
        .Rotation = 315
        .LockAspectRatio = True
        .Height = CentimetersToPoints(7.52)
        .Width = CentimetersToPoints(15.04)
        .WrapFormat.AllowOverlap = True
        .WrapFormat.Side = wdWrapNone
        .WrapFormat.Type = 3
        .RelativeHorizontalPosition = wdRelativeVerticalPositionMargin
        .RelativeVerticalPosition = wdRelativeVerticalPositionMargin
        .Left = wdShapeCenter
        .Top = wdShapeCenter
    End With
    ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument

    If ActiveDocument.Shapes.Count > 0 Then
        'ActiveDocument.Shapes("Text Box 2").Select
        'Selection.ShapeRange.Fill.Visible = msoFalse
        ActiveDocument.Shapes("Text Box 2").Fill.Visible = msoFalse
    End If

Vorteil: Innerhab des With-Abschnitts beziehen sich alle weiteren Befehle auf das angegebene Objekt, das nicht erst markiert werden muss.

Der Selection.HeaderFooter - Befehl kann auch auf die gleiche Art und Weise ersetzt werden, wenn zuvor die genaue Position bekannt ist.

LG, BigBen


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
25.01.2017 11:46:26 Phil
Solved
25.01.2017 12:25:26 Werner
NotSolved
25.01.2017 12:44:25 BigBen
NotSolved
Blau Textfeld überprüfen, danach drucken
25.01.2017 12:41:22 BigBen
NotSolved
25.01.2017 13:05:20 Phil
NotSolved
25.01.2017 13:37:39 BigBen
NotSolved