Thema
|
Datum
|
Von Nutzer
|
Rating
|
Antwort
|
|
07.08.2015 19:57:39 |
Thorsten |
|
|
|
08.08.2015 17:07:24 |
BigBen |
|
|
|
09.08.2015 21:03:32 |
Gast82251 |
|
|
Objekte innerhalb Zeichenbereich ansprechen |
10.08.2015 01:28:17 |
Gast0815 |
|
|
|
11.08.2015 10:56:16 |
Thorsten |
|
|
|
11.08.2015 12:32:54 |
Gast0815 |
|
|
Von:
Gast0815 |
Datum:
10.08.2015 01:28:17 |
Views:
847 |
Rating:
|
Antwort:
|
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.
-
das gerade ausgewählte Textfeld suchen und schauen ob es Verbindungslinien hat; wenn ja: in den Vordergrund schieben und Formatierung ändern
-
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ß
|
- 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
Bitte geben Sie ein aussagekräftiges Thema an.
Bitte geben Sie eine gültige Email Adresse ein!
- 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 |
|
|
|
08.08.2015 17:07:24 |
BigBen |
|
|
|
09.08.2015 21:03:32 |
Gast82251 |
|
|
Objekte innerhalb Zeichenbereich ansprechen |
10.08.2015 01:28:17 |
Gast0815 |
|
|
|
11.08.2015 10:56:16 |
Thorsten |
|
|
|
11.08.2015 12:32:54 |
Gast0815 |
|
|