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:
874
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:

1
2
3
4
5
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:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
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