Anzeige
Archiv - Navigation
1072to1076
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Select vermeiden - bei Shapes

Select vermeiden - bei Shapes
15.05.2009 16:10:22
Daniel
Hallo
kann mir mal jemand verraten, warum bei Shapes dieser Code hier funtkionert (Recorderaufzeichnung):

ActiveSheet.Shapes("Text Box 1").Select
Selection.Characters.text = "xxx"


wenn ich hingegen das ganze Select-Frei programmieren möchte und das Select eleminiere:


ActiveSheet.Shapes("Text Box 1")..Characters.text = "xxx"


bekomme ich eine Fehlermeldung und muss das ganze so ergänzen:


ActiveSheet.Shapes("Text Box 1").TextFrame.Characters.text = "sdfasd"


Gibts hierfür nen Grund?
Denn nach dem Aufzeichnen mit dem Recorder sollte der Code ja nochmal bezgl der Selects überarbeitet werden, aber dann beginnt das grosse Rätselraten, wie der Code ergänzt werden muss, daß er auch funktioniert.
Das gleiche Problem tritt ja bei anderen Elementen (Diagrammen usw) ja auch auf und führt dazu, daß man den Select-Code einfach stehen lässt.
Gruß, Daniel

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Select vermeiden - bei Shapes
15.05.2009 16:14:22
Heinz
Hi,
bei VBA gut, sollte dir das Lokalfenster nicht unbekannt sein.
mfg heinz
AW: Lokalfenster
15.05.2009 16:26:17
Daniel
kenne ich, da werden die Variablen angezeigt.
aber wie hilft es mir bei meinem Problem weiter, dahinterzu kommen, daß ich noch ein Objekt einfügen muss?
ich denke mal jetzt auch an die Leute, die noch nicht so fit in Excel sind und sich über den Recorder an den Code rantasten müssen.
Gruß, Daniel
AW: Lokalfenster
15.05.2009 16:37:36
Heinz
Hi,
Objektvariable verwenden, dann siehst du auf der linken Seite des Lokalfensters alle
Elemente des entsprechenden Objekts, ist selbsterklärend.
mfg Heinz
AW: Selbsterklärend? ist ja wohl n Witz
15.05.2009 17:21:55
Daniel
Hi
naja, übersichtlich und selbsterklärend definer ich irgendwie anders.
und die von mir gefundene Methode mit dem .Textframe.Characters.Text kann ich dort auch nicht finden.
Gruß, Daniel
Anzeige
AW: Selbsterklärend? ist ja wohl n Witz
15.05.2009 17:45:24
Heinz
Hi,
überdenke mal dein VBA-Level.
mfg Heinz
...denn deine "Erfahrung" hat jeder Kundige...
15.05.2009 21:23:44
Luc:-?
...irgendwann mal machen müssen, Daniel... ;-)
Es ist halt so und du musst damit leben, wenn du nicht ein gänzlich neues VBA konstruieren willst...
Der MakroRecorder ist aus 3 Gründen auf Select abgestellt:
1. Tradition - früher wurden alle Cursor-Bewegungen aufgezeichnet
2. Variabilität - der Recorder kann nicht wissen, was als Nächstes kommt
3. Simplizität - so wdn manche Objekte(igenschaften) einfacher verfügbar
Wohl auch deshalb hat Selection so eine breite Palette von objektdefinierenden Eigenschaften.
Willst du den Text eines Shapes ansprechen, so ist der halt eine Eigenschaft von TextFrame, der wiederum eine Eigenschaft von Shape ist, die auch fehlen kann. Das macht auch Sinn, denn du musst ja auch manuell erstmal festlegen, dass eine Form Text enthalten soll. Nur bei einem Textfeld ist das dabei automatisch integriert.
Ein Selection-Objekt kann alles mögliche repräsentieren, u.a. auch einen TextFrame. VBA nimmt dir hier Arbeit ab und stellt automatisch fest, um welches Objekt es sich tatsächlich handelt. Möglicherweise haben auch deshalb unterschiedliche Objekte unterschiedlich benannte Eigenschaften, auch, wenn sie eigentlich identisch sind...
Gruß Luc :-?
Anzeige
"Select" Selektiert das Textframe
15.05.2009 16:20:27
NoNet
Hallo Daniel,
ich vermute, dass durch das .Select bereits das TextFrame und nicht das ShapeRange markiert wird und daher eine direkte Textzuweisung möglich ist.
Probier es doch mal so :
VBA-Code:
Sub ShapeOhneSelect()
    Dim shObj As Shape
    Set shObj = ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 269.25, 302.25, 175.5, 57.75)
    shObj.TextFrame.Characters.Text = "Hier Dein Text"
End Sub
Gruß, NoNet
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige