|
Shapes bei Selektion automatisch färben (Fehler?!)
|
| Autor |
Nachricht |
myfriend.harvey
Office-Anwender & Projektmanager
Verfasst am: 06. Jan 2010, 09:56 Rufname: Harvey
Wohnort: Bodensee
|
|
| Version: Office 2003 |
|
Hallo,
ich habe eine Art Netzbild mit vielen Rechtecken, die durch Verbinder verbunden sind. Wenn nun ein Rechteck angeklickt wird, soll dieses und alle damit verbundenen optisch hervorgehoben werden (indem die anderen 90% transparent werden). Das Ganze natürlich auch wenn mehrere selektiert sind.
Grundsätzlich habe ich das Problem gelöst. Ich stoße das Ganze mit folgendem Code an:
| Code: |
Private Sub App_WindowSelectionChange(ByVal Sel As Selection)
On Error GoTo keine_shapes_selektiert
If ActiveWindow.Selection.ShapeRange.Count = 0 Then
GoTo keine_shapes_selektiert
Else
Call nur_verbundene_anzeigen
End If
Exit Sub
keine_shapes_selektiert:
Call alle_einblenden
End Sub
|
Der Code wird immer ausgeführt, wenn sich die Selektion ändert.
Das Problem ist nur, dass der Code zwar richtig arbeitet, die Änderung der Rechtecke jedoch bei Selektion mit der Maus nicht sichtbar wird.
Wenn ich hingegen die Selektion mit der TAB-Taste durchführe geht's einwandfrei.
Wenn ich obige Funktion deaktiviere und bei selektierten Shapes die entsprechende Methode aufrufre, geht's auch.
Wenn ich obigen Code bei Maus-Selektion im Debugger "durch-steppe" geht's auch.
Meiner Meinung nach liegt es daran, dass beim Aufruf der o.g. Methode die Maustaste quasi noch gedrückt ist und deshalb so einiges nicht geht, unter anderem die Änderung der Transparenz.
Das wäre aber ziemlich doof. Damit fallen viele Möglichkeiten aus, auf eine veränderte Selektion zu reagieren!
Weiß jemand, wo das Problem liegt, oder weiß sogar Abhilfe?
Weiß jemand, ob ich im Makro das Loslassen der Maustaste simulieren kann?
Vielen Dank für Eure Hilfe!
Grüße
Harvey
|
|
hw
Office & Programmierung

Verfasst am: 06. Jan 2010, 13:06 Rufname: Hans Hofmann
|
|
| Version: Office 2003 |
|
Also das GOTO muss ja nun wirklich nicht sein...
Uns was in den eigentlich relvanten Codeteilen abläuft entzieht sich der meiner Kenntnis.
_________________ Gruß hw
DEF5 33B0 5E1C 3703 6987 2E79 C61A B05D 837E 7FE1
|
|
myfriend.harvey
Office-Anwender & Projektmanager
Verfasst am: 06. Jan 2010, 15:24 Rufname: Harvey
Wohnort: Bodensee
|
|
| Version: Office 2003 |
|
Hallo hw,
da goto gefällt mir auch nicht. Da ich mich mit den PPT-Objekten nicht so gut auskenne, war das der schnellste Weg, die Situation "nichts selektiert" zu behandeln. Freue mich über einen Hinweis, wie das besser geht. Darum soll's aber hier ja nicht gehen...
Sorry, Du hast natürlich Recht. Ich habe einfach angenommen, dass die übrige Code funktioniert und daher hier unerheblich ist. Er könnte beispielsweise so aussehen:
| Code: | Sub nur_verbundene_anzeigen()
For Each sh In ActiveWindow.Selection.ShapeRange
sh.Fill.Transparency = 0.9
sh.Line.Transparency = 0.9
Next sh
End Sub
Sub alle_einblenden()
For Each sh In ActiveWindow.View.Slide.Shapes
sh.Fill.Transparency = 0
sh.Line.Transparency = 0
Next sh
End Sub
|
So ist das zwar trivial, zeigt aber das Problem (weil's bei Selektion mit Maus nicht geht).
Vielen Dank für Deine Mühe!
Gruß
Harvey
|
|
Gast
Verfasst am: 06. Jan 2010, 17:01 Rufname:
|
|
| Version: Office 2003 |
|
| Code: | Private Sub App_WindowSelectionChange(ByVal Sel As Selection)
If ActiveWindow.Selection.Type = ppSelectionShapes Then
If ActiveWindow.Selection.ShapeRange.Count = 0 Then
Call alle_einblenden
Else
Call nur_verbundene_anzeigen
End If
endif
End Sub |
Ich hab Deinen Text viel komplizierter verstanden als is...
Ich hab verstanden Du willst die Verbinder verbundenen ablaufen.
Hm, wieso nimmst Du NICHT die Übergabe Selecetion Sel und konstruierst auf ActvieWindow rum - Was zum Eventzeitpunkt selectiert ist weiss die Procedur doch selbst am besten...
Vielleicht hat es damit zu tun, aber so richitg schlau werd ich aus Deinem Text offenbar immer nocht net?
|
|
myfriend.harvey
Office-Anwender & Projektmanager
Verfasst am: 11. Jan 2010, 16:00 Rufname: Harvey
Wohnort: Bodensee
|
|
| Version: Office 2003 |
|
Hallo,
letztendlich will ich auch was Komplizierteres machen.
Das Problem lässt sich aber mit dem einfachen Setzen von Transparency einfacher zeigen. Natürlich könnte ich sel benutzen. Für meinen realen Fall reicht das allerdings nicht aus. Aber mit sel geht's sowieso auch nicht.
Hier nochmal stark vereinfacht:
| Code: | Private Sub App_WindowSelectionChange(ByVal Sel As Selection)
If Sel.Type = ppSelectionShapes Then
Sel.ShapeRange.Fill.Transparency = 0.9
End If
End Sub |
Wenn man eine Shape mit der Maus selektiert passiert nichts!
Wenn man mit TAB selektiert, passiert das Erwartete!
Danke für Hilfe
Harvey
|
|
hw
Office & Programmierung

Verfasst am: 12. Jan 2010, 21:54 Rufname: Hans Hofmann
|
|
| Version: Office 2003 |
|
Ich kann das Problem nicht nachvollziehen.
In meinen Anwendungen feuert der SelectionEvent anstandslos bei Mausaktionen...
Ich hab mal ein AddIn geschrieben, wo die Shapes gefixt wurden - also nicht mehr selektierbar waren...
_________________ Gruß hw
DEF5 33B0 5E1C 3703 6987 2E79 C61A B05D 837E 7FE1
|
|
myfriend.harvey
Office-Anwender & Projektmanager
Verfasst am: 29. Jan 2010, 12:17 Rufname: Harvey
Wohnort: Bodensee
|
|
| Version: Office 2003 |
|
Hi,
ja, das Selection Event feuert bei Mausaktionen.
Nur der Code in der ausgeführten Methode tut nicht.
Im meinem Fall konkret:
| Code: | Sel.ShapeRange.Fill.Transparency = 0.9
|
Bei Selektion via Maus: Fehlanzeige.
Bei Selektion via Tastatur geht's, ich will aber natürlich mit der Maus selektieren!
Ich glaube hier an ein grundsätzliches Problem, weil ich den Eindruck habe, die Maus ist bei der Ausführung des Codes noch gedrückt. Und dann geht so einiges nicht ...
Das wäre aber ziemlich bescheuert. Genau dazu will ich ja auf die Selektion reagieren!
Danke
Harvey
|
|
hw
Office & Programmierung

Verfasst am: 01. Feb 2010, 14:25 Rufname: Hans Hofmann
|
|
| Version: Office 2003 |
|
Sorry, aber ich kann das Problem nicht verifizieren und damit auch nicht helfen.
Bei mir funktioniert das, egal ob die Taste gedrückt oder losgelassen wurde....
_________________ Gruß hw
DEF5 33B0 5E1C 3703 6987 2E79 C61A B05D 837E 7FE1
|
|
myfriend.harvey
Office-Anwender & Projektmanager
Verfasst am: 08. Feb 2010, 20:03 Rufname: Harvey
Wohnort: Bodensee
|
|
| Version: Office 2003 |
|
Hallo hw,
erst mal vielen Dank für Deine Mühe.
Wenn's bei Dir geht, ist das Ganze natürlich hoffnungslos ...
Mittlerweile habe ich das Ganze im Präsentationsmodus implementiert.
Das ist zwar Horror, weil da einige Objekte ganz anders angesprochen werden müssen und man quasi nicht debuggen kann, ich hab's aber tatsächlich hinbekommen. Uff!
Bei den Aktionseinstellungen der Shapes starte ich das entsprechende Makro. Mein ursprüngliches Problem taucht dabei Gott sei Dank nicht auf.
Grüße
Harvey
|
|
hw
Office & Programmierung

Verfasst am: 10. Feb 2010, 11:48 Rufname: Hans Hofmann
|
|
| Version: Office 2003 |
|
Hä bitte...
Seit wann gibt es im Präsentationsmodus ein SelectionChange Ereignis. hast Du mal was in einer Bildschirmpräsentation selektiert - ich nicht...
_________________ Gruß hw
DEF5 33B0 5E1C 3703 6987 2E79 C61A B05D 837E 7FE1
|
|
myfriend.harvey
Office-Anwender & Projektmanager
Verfasst am: 10. März 2010, 18:26 Rufname: Harvey
Wohnort: Bodensee
|
|
| Version: Office 2003 |
|
Sorry, sehe den Beitrag erst jetzt ...
Nein, natürlich nicht mit SelectionChange Ereignis, sondern:
Bei den Aktionseinstellungen der Shapes starte ich ein geeignetes Makro.
Da muss ich die "Selektion" und "Deselektion" zwar selbst implementieren. Das ist aber nicht wirklich sehr schwer.
Mein ursprüngliches Ziel bekomme ich damit sehr schön hin.
Alle selektierten und damit verbundenen Shapes sind normal sichtbar (und damit quasi hervorgehoben), alle anderen zu 90% transparent. Die selektierten bekommen außerdem noch einen dickeren Rahmen. Sieht cool aus und ist für das Zeigen von Zusammenhängen gut geeignet.
Gruß
Harvey
|
|
| Verwandte Themen |
| Forum / Themen |
Antworten |
Autor |
Aufrufe |
Letzter Beitrag |
 |
Powerpoint Präsentationen: Powerpoint kopiert automatisch beim STRG+Markieren?! |
11 |
Hieu |
2300 |
12. Okt 2009, 18:59 Gast  |
 |
PowerPoint VBA (Makros): Cut und Paste von Shapes |
4 |
area51 |
193 |
04. Aug 2009, 07:50 area51  |
 |
Powerpoint Präsentationen: PPP automatisch als website starten |
3 |
TofuTown1991 |
398 |
24. Jun 2009, 18:16 Gast  |
 |
PowerPoint VBA (Makros): msg box soll öffnen der Präsentation automatisch starten |
0 |
[Daily]Confused |
196 |
04. Jun 2009, 14:05 [Daily]Confused  |
 |
PowerPoint VBA (Makros): geöffnete Dokumente automatisch sichern |
2 |
starfighter |
191 |
11. Mai 2009, 13:54 starfighter  |
 |
Powerpoint Präsentationen: Präsentation Automatisch durchgehend |
1 |
chrisi200014 |
87 |
20. Apr 2009, 09:14 gumbor  |
 |
PowerPoint VBA (Makros): Shapes Gruppieren |
2 |
nuno |
722 |
13. März 2009, 23:41 MagicMicha  |
 |
Powerpoint Präsentationen: Automatisch Makro aufrufen anstatt auf Button klicken |
0 |
hypermasterd |
647 |
28. Feb 2009, 01:24 hypermasterd  |
 |
Powerpoint Präsentationen: Excel-Tab während PP-Präsentation automatisch aktualisieren |
0 |
dinz |
397 |
08. Feb 2009, 13:26 dinz  |
 |
Powerpoint Präsentationen: Inhalt von Textfeldern automatisch synchronisieren |
3 |
Chris_AC |
289 |
04. Sep 2008, 20:52 hw  |
 |
PowerPoint VBA (Makros): laufvariable in Shapes("Text Box 3") |
1 |
benutzername |
1041 |
25. Jun 2008, 14:09 Cyril Sneer  |
 |
Powerpoint Präsentationen: Präsentation läuft automatisch weiter - soll sie aber nicht |
2 |
jafaito |
811 |
16. Nov 2007, 08:43 jafaito  |
| |