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

Forumthread: Rechte Maustaste im Textfeld nutzen

Rechte Maustaste im Textfeld nutzen
24.01.2021 17:00:41
Andreas
Hallo,
ich habe ein kleine Programm über Excel- VBA erstellt. In diesem Programm nutze ich Textfelder, in die ich über STRG + V Sätze einfüge. Perfekt wäre es, wenn ich hier auch das Kontext- Menu der rechten Maus nutzen könnte. Leider finde ich keine Lösung, wie ich dies Programmieren kann.
Kann mir jemand in diesem Forum helfen, wie dies geht.
Vielen Dank im Voraus...
Andreas
Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Rechte Maustaste im Textfeld nutzen
24.01.2021 17:05:28
Hajo_Zi
Hallo Andreas,
Private Sub TextBox1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As  _
Single, ByVal Y As Single)
MsgBox 1
End Sub

AW: Rechte Maustaste im Textfeld nutzen
24.01.2021 17:11:25
Andreas
Hallo Hajo_Zi,
vielen Dank. Dies funktioniert. Allerdings habe ich dann noch keine Auswahl, einen Text auszuschneiden bzw. einen Text dort einzufügen (Reguläres Kontextmenu der rechten Maustaste funktioniert im Textfeld ja nicht.
Gibt es hierfür auch eine Lösung.?
Anzeige
AW: Rechte Maustaste im Textfeld nutzen
24.01.2021 17:16:22
Hajo_Zi
ich habe es falsch gelesen. Ich dachte Du wolltest die Rechte Maustaste im Textfels benutzen.
Kein Ahnung was Du jetzt willst.
Ich überlasse mal anderen die Lösung.
Gruß Hajo
AW: Rechte Maustaste im Textfeld nutzen
24.01.2021 17:16:29
Nepumuk
Hallo Andreas,
was brauchst du alles im Kontextmenü? Kopieren, Einfügen ....
Gruß
Nepumuk
Anzeige
AW: Rechte Maustaste im Textfeld nutzen
24.01.2021 18:21:18
Andreas
Hallo Napumuk,
Kopieren und Einfügen würde mir vollkommen ausreichen.
Gibt es hier eine einfache Lösung?
Vielen Dank schon im Voraus...
Andreas
AW: Rechte Maustaste im Textfeld nutzen
24.01.2021 18:39:11
Nepumuk
Hallo Andreas,
hier eine Beispielmappe: https://www.herber.de/bbs/user/143293.xls
Gruß
Nepumuk
Anzeige
AW: Rechte Maustaste im Textfeld nutzen
24.01.2021 19:24:09
Andreas
Hallo Napumuk,
dies funktioniert super. Danke.
Allerdings habe ich in meine Tabellenblätter ein ActiveX- Steuerelement - Textfeld genommen, in die ich die Texte einfüge bzw. ausschneide. Hier funktioniert der Code nicht. Oder mache ich etwas falsch?
Schon mal vielen Dank für Deine Mühe.
Andreas
Anzeige
AW: Rechte Maustaste im Textfeld nutzen
24.01.2021 20:53:11
Andreas
Hallo Napumuk,
funktioniert perfekt. Vielen Dank. Habe sehr lange nach einer Lösung gesucht.
Ich hätte noch eine Bitte. Was muss ich im Modul noch ergänzen, damit ich noch die Auswahl Ausschneiden habe.
Vielen Dank noch mal und noch einen schönen Abend....
Andreas
Anzeige
AW: Rechte Maustaste im Textfeld nutzen
24.01.2021 21:47:55
Nepumuk
Hallo Andreas,
so:
Option Explicit
Option Private Module

Public Const COMMANDBAR_NAME As String = "TextBoxPopup"

Private lobjTextBox As MSForms.TextBox

Public Sub CreateCommandBar()
    
    Dim objCommandBar As CommandBar
    Dim objCommandBarButton As CommandBarButton
    
    Call DeleteCommandBar
    
    Set objCommandBar = CommandBars.Add(Name:=COMMANDBAR_NAME, Position:=msoBarPopup, Temporary:=True)
    
    Set objCommandBarButton = objCommandBar.Controls.Add(Type:=msoControlButton)
    
    With objCommandBarButton
        
        .Caption = "Ausschneiden"
        .FaceId = 21
        .OnAction = "CutText"
        .Style = msoButtonIconAndCaption
        
    End With
    
    Set objCommandBarButton = objCommandBar.Controls.Add(Type:=msoControlButton)
    
    With objCommandBarButton
        
        .Caption = "Kopieren"
        .FaceId = 19
        .OnAction = "CopyText"
        .Style = msoButtonIconAndCaption
        
    End With
    
    Set objCommandBarButton = objCommandBar.Controls.Add(Type:=msoControlButton)
    
    With objCommandBarButton
        
        .Caption = "Einfügen"
        .FaceId = 22
        .OnAction = "InsertText"
        .Style = msoButtonIconAndCaption
        
    End With
End Sub

Public Sub DeleteCommandBar()
    
    Dim objCommandBar As CommandBar
    
    For Each objCommandBar In CommandBars
        
        If objCommandBar.Name = COMMANDBAR_NAME Then Call objCommandBar.Delete
        
    Next
End Sub

Public Sub CutText()
    Call TextBox.Cut
End Sub

Public Sub CopyText()
    Call TextBox.Copy
End Sub

Public Sub InsertText()
    Call TextBox.Paste
End Sub

Public Property Get TextBox() As MSForms.TextBox
    Set TextBox = lobjTextBox
End Property

Public Property Set TextBox(ByRef probjTextBox As MSForms.TextBox)
    Set lobjTextBox = probjTextBox
End Property

Gruß
Nepumuk
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Rechte Maustaste im Textfeld nutzen


Schritt-für-Schritt-Anleitung

  1. VBA-Editor öffnen:

    • Drücke ALT + F11, um den VBA-Editor in Excel zu öffnen.
  2. Textfeld hinzufügen:

    • Füge ein ActiveX-Textfeld zu Deinem Arbeitsblatt hinzu. Klicke dazu auf „Entwicklertools“ und dann auf „Textfeld“ im Bereich „Steuerelemente“.
  3. Code für die Rechte Maustaste einfügen:

    • Klicke mit der rechten Maustaste auf das Textfeld und wähle „Code anzeigen“.
    • Füge den folgenden Code ein, um die Rechte Maustaste zu aktivieren:
    Private Sub TextBox1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
       If Button = 2 Then ' Rechte Maustaste
           CreateCommandBar
       End If
    End Sub
  4. Kontextmenü erstellen:

    • Erstelle eine Funktion, um das Kontextmenü zu definieren. Füge diesen Code in dasselbe Modul ein:
    Public Sub CreateCommandBar()
       Dim objCommandBar As CommandBar
       Dim objCommandBarButton As CommandBarButton
    
       Set objCommandBar = CommandBars.Add(Name:="TextBoxPopup", Position:=msoBarPopup, Temporary:=True)
    
       ' Ausschneiden
       Set objCommandBarButton = objCommandBar.Controls.Add(Type:=msoControlButton)
       With objCommandBarButton
           .Caption = "Ausschneiden"
           .OnAction = "CutText"
       End With
    
       ' Kopieren
       Set objCommandBarButton = objCommandBar.Controls.Add(Type:=msoControlButton)
       With objCommandBarButton
           .Caption = "Kopieren"
           .OnAction = "CopyText"
       End With
    
       ' Einfügen
       Set objCommandBarButton = objCommandBar.Controls.Add(Type:=msoControlButton)
       With objCommandBarButton
           .Caption = "Einfügen"
           .OnAction = "InsertText"
       End With
    
       objCommandBar.ShowPopup
    End Sub
  5. Funktionen für Ausschneiden, Kopieren und Einfügen:

    • Definiere die entsprechenden Funktionen:
    Public Sub CutText()
       TextBox1.Cut
    End Sub
    
    Public Sub CopyText()
       TextBox1.Copy
    End Sub
    
    Public Sub InsertText()
       TextBox1.Paste
    End Sub

Häufige Fehler und Lösungen

  • Rechte Maustaste funktioniert nicht in Excel:

    • Stelle sicher, dass Du das richtige Textfeld verwendet hast (ActiveX-Textfeld) und dass der Code korrekt in das entsprechende Modul eingefügt wurde.
  • Kontextmenü wird nicht angezeigt:

    • Überprüfe, ob die CreateCommandBar-Subroutine korrekt aufgerufen wird. Der Button-Wert muss 2 sein, um die rechte Maustaste zu erkennen.

Alternative Methoden

Wenn die rechte Maustaste nicht funktioniert, kannst Du auch die Tastenkombinationen STRG + C, STRG + X und STRG + V verwenden, um Text zu kopieren, auszuschneiden und einzufügen. Diese Methode ist besonders nützlich, wenn Du in Excel schnell arbeiten möchtest.


Praktische Beispiele

  • Beispiel 1: Erstelle ein einfaches Excel-Dokument mit einem Textfeld, in das Du Text einfügen kannst. Implementiere den oben genannten VBA-Code, um die rechte Maustaste zu aktivieren.

  • Beispiel 2: Verwende das Kontextmenü, um Text aus einer anderen Quelle zu kopieren und in das Textfeld einzufügen. Dies zeigt, wie die rechte Maustaste in Excel nützlich sein kann.


Tipps für Profis

  • Erweiterte Funktionen: Du kannst das Kontextmenü weiter anpassen, indem Du zusätzliche Optionen hinzufügst, wie z.B. „Alles auswählen“ oder „Rückgängig machen“.

  • Steuerelemente anpassen: Experimentiere mit verschiedenen ActiveX-Steuerelementen in Excel, um das Benutzererlebnis zu verbessern.


FAQ: Häufige Fragen

1. Warum funktioniert die rechte Maustaste im Textfeld nicht? Die rechte Maustaste funktioniert nicht, wenn der VBA-Code nicht korrekt implementiert ist. Vergewissere Dich, dass der Code in das richtige Modul eingefügt wurde.

2. Wie kann ich die rechte Maustaste in Excel aktivieren? Du musst einen VBA-Code schreiben, der das Kontextmenü für das Textfeld erstellt und die rechte Maustaste erkennt. Der Code sollte in das zugehörige Textfeld-Modul eingefügt werden.

3. Gibt es eine Möglichkeit, die rechte Maustaste in Excel zu deaktivieren? Ja, Du kannst den entsprechenden VBA-Code so anpassen, dass der Aufruf der CreateCommandBar-Subroutine bei einem Mausklick auf die rechte Maustaste unterdrückt wird.

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