Thema Datum  Von Nutzer Rating
Antwort
07.08.2015 19:57:39 Thorsten
Solved
08.08.2015 17:07:24 BigBen
NotSolved
09.08.2015 21:03:32 Gast82251
NotSolved
Blau Objekte innerhalb Zeichenbereich ansprechen
10.08.2015 01:28:17 Gast0815
NotSolved
11.08.2015 10:56:16 Thorsten
NotSolved
11.08.2015 12:32:54 Gast0815
NotSolved

Ansicht des Beitrags:
Von:
Gast0815
Datum:
10.08.2015 01:28:17
Views:
847
Rating: Antwort:
  Ja
Thema:
Objekte innerhalb Zeichenbereich ansprechen

Wieso sollte das mit den Verbindungslinien ein Problem darstellen?

 

Die findet man so - nur ein Grundgerüst:

Option Explicit

Public Sub Bsp()
  
  Dim col As VBA.Collection
  Dim shp As Word.Shape
  
  If GetConnectors(col, ThisDocument) > 0 Then
    For Each shp In col
      With shp.ConnectorFormat
        If .BeginConnected And shp.ConnectorFormat.EndConnected Then
          Debug.Print "connector '" & shp.Name & "' between '" & .BeginConnectedShape.Name & "' and '" & .EndConnectedShape.Name & "'"
        ElseIf .BeginConnected And Not .EndConnected Then
          Debug.Print "connector '" & shp.Name & "' between '" & .BeginConnectedShape.Name & "' and <none>"
        ElseIf Not .BeginConnected And .EndConnected Then
          Debug.Print "connector '" & shp.Name & "' between <none> and '" & .EndConnectedShape.Name & "'"
        Else
          Debug.Print "connector '" & shp.Name & "' between <none> and <none>"
        End If
      End With
    Next
  End If
  
End Sub

'liefert die Verbindungslinien in der ersten gefundenen Zeichenfläche
Public Function GetConnectors(ByRef Connectors As VBA.Collection, Optional ByVal Document As Word.Document) As Long
  
  If Document Is Nothing _
    Then Set Document = ActiveDocument
  
  Dim colConn   As VBA.Collection
  Dim shpCanvas As Word.Shape
  Dim shp       As Word.Shape
  
  For Each shp In Document.Shapes
    If shp.Type = msoCanvas Then
      Set shpCanvas = shp
      Exit For
    End If
  Next
  
  If shpCanvas Is Nothing Then Exit Function
  
  Set Connectors = New VBA.Collection
  
  For Each shp In shpCanvas.CanvasItems
    If shp.Connector Then
      Call Connectors.Add(Key:=shp.Name, Item:=shp)
    End If
  Next
  
  GetConnectors = Connectors.Count
  
End Function

Wie man sieht hat man Zugriff auf Anfang und Ende der Verbindungslinien über BeginConnectedShape und EndConnectedShape.

Jetzt gibts also zwei Wege.

  1. das gerade ausgewählte Textfeld suchen und schauen ob es Verbindungslinien hat; wenn ja: in den Vordergrund schieben und Formatierung ändern
  2. sich alle Verbindungslinen suchen und dann alle daraufhin prüfen ob sie mit dem gerade ausgewählte Textfeld verbunden sind; wenn ja: Elemente in den Vordergrund schieben und Formatierung ändern

 

Gruß


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
07.08.2015 19:57:39 Thorsten
Solved
08.08.2015 17:07:24 BigBen
NotSolved
09.08.2015 21:03:32 Gast82251
NotSolved
Blau Objekte innerhalb Zeichenbereich ansprechen
10.08.2015 01:28:17 Gast0815
NotSolved
11.08.2015 10:56:16 Thorsten
NotSolved
11.08.2015 12:32:54 Gast0815
NotSolved