none
Pfeil in Userform darstellen (VBA) RRS feed

  • Frage

  • Hallo alle zusammen,
    ich möchte einen Pfeil auf meiner Userform darstellen. Eine Möglichkeit wäre den Pfeil in einer Bilddatei zu hinterlegen und diese in einem Label zu laden. Jedoch soll mein Makro nur aus einer Datei (Excel datei mit makro: *.xlsm) bestehen. Ich möchte also den Pfeil/das Bild in die Exceldatei integrieren, bzw. ein bereits in VBA vorhandenes Pfeilsymbol verwenden. Ich habe auch schon versucht ein Zeichen zu verwenden (unicode: 2191). Jedoch kann ich das Zeichen nicht so formen, wie ich es mit einem Bild tun könnte, also z.B. in die Länge ziehen, da ich gerne Pfeile unterschiedlicher Länge, jedoch mit gleicher Breite bzw. gleicher Pfeilspitze hätte. Wäre schön, wenn mir jemand weiter helfen kann. Schon mal vielen Dank.
    Gruß
    Thorsten 
    Donnerstag, 9. April 2009 07:07

Antworten

  • Hallo Thorsten

    Schwierige Angelegenheit... Die Technologie hinter VBA-Formulare ist vergleichsweise alt (> 10 Jahre) und auch relativ rudimentär.

    Falls Du nur mit Zeichensätzen arbeitest, kann ich nur vorschlagen, so etwas wie das: ---> (Strich, Strich (so viele Du brauchst), Grösser-Als)

    Sonst fällt mir nur ein, das Bild in einem versteckten Arbeitsblatt einzufügen. Bei Bedarf, das Bild als eine Grafikdatei speichern, sodass Dein Code diese laden kann. Leider kenne ich den Code nicht, um das Grafikobjekt als Datei zu speichern, aber möglich ist es schon (evtl. in die Zwischenablage kopieren, dann diesen Inhalt mittels der Windows API in eine Datei speichern).

    Mmm. Ausser wenn Du die Grafik auf einem Symbolleisten-Schalter "zwischenspeichern" könntest. Dann würde so etwas gehen, um die Grafik in einer Datei zu speichern (angenommen, Du arbeitest nicht mit einer allzu alten Office-Version):

    Sub SavePictureToFile()
        Dim pic As IPictureDisp
        Dim ctl As Office.CommandBarButton
       
        CustomizationContext = ActiveDocument
        Set ctl = CommandBars("Test").Controls(1)
        Set pic = ctl.Picture
        stdole.StdFunctions.SavePicture pic, "C:\Test\TestSaveIPicDisp.gif"
    End Sub

    Cindy Meister, VSTO/Word MVP
    Donnerstag, 7. Mai 2009 18:15