none
An welchen Textstellen in Word ist das Kontextmenü verfügbar? RRS feed

  • Frage

  • Hallo,

    eigene Kontextmenüs sind eine feine Sache und erleichtern doch die Bereitstellung von Makrofunktionen erheblich: Rechtsklick und ich habe neben den üblichen Copy-Paste-etc-Funktionen meine eigenen.

    Leider funktioniert dieser Rechtsklick so nicht immer, also der Rechtsklick zeigt schon immer eine Kontextmenü an, aber an vielen Stellen im Text eben nur die Standardfunktionen. Mittlerweile habe ich folgende Bedingungen festgestellt, unter denen meine individuellen Funktionen nicht gelten und zwar:

    - in Gliederungstext (Ebene 1 und höher)
    - in Aufzählungen
    - in Formularfeldern.

    Gibt es hierzu konkrete Aussagen? Wie schaffe ich es, dass meine individuelles Kontextmenü überall oder doch fast überall verfügbar ist. Gut, ein Kontextmenü sollte auch kontextabhängig sein, und irgendwie kann ich auch nachvollziehen, dass ein Kontextmenü über einer Überschrift anders aussieht als über normalem Fließtext. Wie bekomme ich das kontextsensitive in die Kontextmenüs? Ich kenne eigentlich nur das CommandBars("Text")-Objekt an das ein Control vom Typ msoControButton engehängt wird.

    Meine Beobachtungen beziehen sich auf Word in den Versionen 2003 - 2010.


    Grüße aus Köln am Rhein - Klaus Trapp

    Donnerstag, 20. Dezember 2012 14:24

Antworten

  • Naja, Du musst Sie eben in die gewünschten Popups reinhängen, nicht nur in "Text", welche das sind kannst Du ganz einfach ausprobieren.

    Andreas.

    Sub AddPop()
      Dim C As CommandBar
      On Error Resume Next
      For Each C In CommandBars
        If C.Type = msoBarTypePopup Then
          With C.Controls.Add(msoControlButton, Temporary:=True)
            .Caption = "->" & C.Name
          End With
        End If
      Next
    End Sub

    Sub DeletePop()
      Dim C As CommandBar
      On Error Resume Next
      For Each C In CommandBars
        If C.Type = msoBarTypePopup Then
          C.Controls("->" & C.Name).Delete
        End If
      Next
    End Sub

    • Als Antwort markiert Klaus Trapp Mittwoch, 2. Januar 2013 09:23
    Freitag, 28. Dezember 2012 10:05

Alle Antworten

  • Naja, Du musst Sie eben in die gewünschten Popups reinhängen, nicht nur in "Text", welche das sind kannst Du ganz einfach ausprobieren.

    Andreas.

    Sub AddPop()
      Dim C As CommandBar
      On Error Resume Next
      For Each C In CommandBars
        If C.Type = msoBarTypePopup Then
          With C.Controls.Add(msoControlButton, Temporary:=True)
            .Caption = "->" & C.Name
          End With
        End If
      Next
    End Sub

    Sub DeletePop()
      Dim C As CommandBar
      On Error Resume Next
      For Each C In CommandBars
        If C.Type = msoBarTypePopup Then
          C.Controls("->" & C.Name).Delete
        End If
      Next
    End Sub

    • Als Antwort markiert Klaus Trapp Mittwoch, 2. Januar 2013 09:23
    Freitag, 28. Dezember 2012 10:05
  • Ja, das war's. Danke!


    Grüße aus Köln am Rhein - Klaus Trapp

    Mittwoch, 2. Januar 2013 09:33