Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Text aus Shape bei Klick in MessageBox

Text aus Shape bei Klick in MessageBox
30.06.2004 11:49:17
Jörg
Hallo!
Wie kann ich einen Text aus einem Shape durch Anklicken auslesen und in einer Messagebox anzeigen lassen?
Warum? Der Text im Shape ist sehr klein und nur beim Ausdruck zu erkennen. Um auf dem Monitor den Text lesen zu können, benötige ich also eine MessageBox oder eine Art PopUp.
Vielen Dank für jegliche Hilfe im Voraus.
Grüße
Jörg
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Text aus Shape bei Klick in MessageBox
Nike
Hi,
du baust dir einfach ein Script, das den Textinhalt enthaelt

Sub Text1()
msgbox "Tri tra trullala"
End Sub

und waehlst dann das Script aus,
wenn du dem Textfeld ein Makro zuweist (ueber rechten Mausklick) ...
Bye
Nike
AW: Application.Caller
Nike
Hi,
da war noch was mit Caller, diese Variante is noch flexibler,
wenn du die Funktionalitaet mehreren Felden zuordnen moechtest,
weise das folgende Script zu:

Sub InfoBox()
MsgBox ActiveSheet.Shapes(Application.Caller).OLEFormat.Object.Caption
End Sub

Bye
Nike
Anzeige
AW: Application.Caller
Jörg
Hi Nike!

Sub InfoBox()
MsgBox ActiveSheet.Shapes(Application.Caller).OLEFormat.Object.Caption
End Sub

Vielen Dank, einfach und brilliante Lösung!
Das hat mir echt geholfen!
Viele Grüße
Jörg
AW: Text aus Shape bei Klick in MessageBox
Uduuh
Hallo,
das sollte dir weiter helfen:

Sub textfeld1_beiklick()
Dim Rng1 As Range
Set Rng1 = Selection
ActiveSheet.Shapes("text box 1").Select
MsgBox Selection.Characters.text
Rng1.Select
End Sub

Gruß aus'm Pott
Udo
Anzeige
AW: Text aus Shape bei Klick in MessageBox
Jörg
Hallo Udo,
vielen Dank für Deinen Tipp.
Ok, ich detailiere nochmal etwas:
Ich habe ca. 10-20 verschieden große Shapes (Rechtecke) mit dynamisch erzeugtem Text auf dem Sheet, die alle per Makro/VBA nach bestimmten Daten aus einer Liste erstellt wurden.
Angenommen ich lege nun Makros aus die Shapes. Wenn ich durch Klick das Makro starte, woher weiss das Makro, welches Shape ich angeklickt habe, wenn es ein Makro für alle Shapes ist?
Viele Grüße aus Willstätt (eigentlich Ruhrpottler)
Jörg
Anzeige
AW: Text aus Shape bei Klick in MessageBox
K.Rola
Hallo,
so z.B.:
MsgBox ActiveSheet.Shapes(Application.Caller).DrawingObject.Caption
Gruß K.Rola
;
Anzeige
Anzeige

Infobox / Tutorial

Text aus Shape in einer MessageBox anzeigen


Schritt-für-Schritt-Anleitung

Um den Text aus einem Shape auszulesen und in einer MessageBox anzuzeigen, kannst du die folgende Schritt-für-Schritt-Anleitung nutzen:

  1. Öffne das Visual Basic for Applications (VBA) Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu:

    • Klicke mit der rechten Maustaste auf „VBAProject (DeineArbeitmappe)” und wähle „Einfügen” > „Modul”.
  3. Gib den VBA-Code ein:

    • Füge den folgenden Code in das Modulfenster ein:
    Sub InfoBox()
       MsgBox ActiveSheet.Shapes(Application.Caller).TextFrame.Characters.Text
    End Sub
  4. Weise das Makro einem Shape zu:

    • Gehe zurück zu deinem Arbeitsblatt, klicke mit der rechten Maustaste auf das Shape, wähle „Makro zuweisen” und wähle „InfoBox”.
  5. Teste die Funktion:

    • Klicke auf das Shape, um die MessageBox mit dem Shape-Text anzuzeigen.

Häufige Fehler und Lösungen

  • Fehler: „Laufzeitfehler 1004: Anwendung oder Objekt definiert Fehler”

    • Lösung: Stelle sicher, dass du den richtigen Namen des Shapes verwendest und dass das Shape tatsächlich einen Text enthält.
  • Fehler: Keine Anzeige in der MessageBox

    • Lösung: Überprüfe, ob das Shape einen Text hat. Der Code ActiveSheet.Shapes(Application.Caller).TextFrame.Characters.Text gibt nur Text zurück, wenn dieser vorhanden ist.

Alternative Methoden

Eine alternative Methode, um den Text eines Shapes zu erhalten, ist die Verwendung von OLEFormat.Object.Caption, wie im folgenden Beispiel:

Sub ShapeTextWithOLEFormat()
    MsgBox ActiveSheet.Shapes(Application.Caller).OLEFormat.Object.Caption
End Sub

Diese Methode kann nützlich sein, wenn du mit OLE-Objekten arbeitest. Beachte, dass dies spezifisch für Shapes ist, die OLE-Objekte enthalten.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie du diese Funktion verwenden kannst:

  1. Einfache MessageBox mit Shape-Text:

    • Verwende den oben genannten InfoBox-Code, um den Text eines Rechtecks auszulesen.
  2. Dynamisches Auslesen von mehreren Shapes:

    • Wenn du mehrere Shapes hast, kannst du den gleichen Code für jedes Shape verwenden, indem du einfach das Makro zuweist:
    Sub ShowAllShapesText()
       Dim shp As Shape
       For Each shp In ActiveSheet.Shapes
           MsgBox shp.TextFrame.Characters.Text
       Next shp
    End Sub

Tipps für Profis

  • Nutze On Error Resume Next, um Fehler zu vermeiden, wenn ein Shape keinen Text hat.
  • Experimentiere mit Shapes(Application.Caller).Fill.ForeColor.RGB, um die Farbänderung des Shapes zu steuern, wenn du darauf klickst.
  • Halte deine Shapes gut benannt, um die Verwendung von Application.Caller zu vereinfachen.

FAQ: Häufige Fragen

1. Wie kann ich den Text aus mehreren Shapes in einer einzigen MessageBox anzeigen?
Du kannst den Text der Shapes in einer Schleife sammeln und dann in einer einzigen MessageBox anzeigen:

Sub ShowMultipleShapesText()
    Dim text As String
    Dim shp As Shape
    For Each shp In ActiveSheet.Shapes
        text = text & shp.TextFrame.Characters.Text & vbNewLine
    Next shp
    MsgBox text
End Sub

2. Was ist Application.Caller und warum ist es wichtig?
Application.Caller gibt den Namen des Steuerelements zurück, das das Makro aufgerufen hat. Dies ist entscheidend, um zu wissen, welches Shape du angeklickt hast und den entsprechenden Text auslesen zu können.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige