Eigenen QR-Code generieren und in Shape setzen

.. das wohl mächtigste Werkzeug in Bill Gates' Büro-Sippe. Ob reine Formeln, PowerQuery oder VBA. Hier bleiben kaum Wünsche unerfüllt.
Benutzeravatar
d'r Bastler
Beiträge: 832
Registriert: 29. Aug 2022, 13:20
Hat sich bedankt: 224 Mal
Danksagung erhalten: 119 Mal

Eigenen QR-Code generieren und in Shape setzen

#1

Beitrag von d'r Bastler »

Moin allerseits,

was XL/VBA mit nur 25 Zeilen in einem Allg. Modul so alles kann ... :lol:

Ein Betthupferl für registrierte VBAstler ...
GetQRinShape.zip
Viel Spaß damit!
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Folgende Benutzer bedankten sich beim Autor d'r Bastler für den Beitrag (Insgesamt 2):
thowe, knobbi38
d'r Bastler von den VBAsteleien.de
Win 10 + Office 2019 & Win11 + Office 2021 + Visio 2019 pro & macOS.X15 + Office2019pro & Android12 & XL365
Benutzeravatar
thowe
Beiträge: 230
Registriert: 12. Sep 2022, 16:57
Hat sich bedankt: 109 Mal
Danksagung erhalten: 79 Mal
Kontaktdaten:

Re: Eigenen QR-Code generieren und in Shape setzen

#2

Beitrag von thowe »

und jetzt komme ich daher lieber d'r Bastler ...

... und "mißbrauche" ich deinen QR-Code Generator und bastle daraus einen Button:

In Zelle "B2" folgenden Text eintragen: "Klick mich"

Code: Alles auswählen

Sub CreateButtonInShape()
Dim ws As Worksheet, shp As Shape, rng As Range
Dim iL As Integer, iT As Integer, iH As Integer, iW As Integer

    
Set ws = ThisWorkbook.ActiveSheet
Set rng = Range("C3")

sLink = rng.Offset(-1, -1).Value

iL = rng.Left: iT = rng.Top: iH = 150: iW = 150
    
Set shp = ws.Shapes.AddShape(msoShapeRectangle, iL, iT, iW, iH)
With shp
    '.Fill.BackColor = RGB(0, 0, 0) -> mag RGB nicht, muss ich erst fixen
    '.Fill.ForeColor = RGB(255, 255, 255)-> mag RGB nicht, muss ich erst fixen
    .Name = "test"
    .OnAction = "test"
    .TextFrame.Characters.Text = sLink
End With

End Sub
lg thowe
Folgende Benutzer bedankten sich beim Autor thowe für den Beitrag:
d'r Bastler
Benutzeravatar
d'r Bastler
Beiträge: 832
Registriert: 29. Aug 2022, 13:20
Hat sich bedankt: 224 Mal
Danksagung erhalten: 119 Mal

Re: Eigenen QR-Code generieren und in Shape setzen

#3

Beitrag von d'r Bastler »

Moin lieber Thowe,

na, da komm ich dann doch auch gleich nochmal um die Ecke :P
Dein Code baut einen Button (was meiner ja auch schon tat, inklusive dazugehöriger Action), den Du aber nicht mit RGB colorieren magst. Braucht es doch eigentlich auch garnicht - denn mein Button ist bereits ein QR-Code, den man per Kamera/Scanner auslesen kann, oder die bisher nur aus einer MsgBox bestehende Action entsprechend lustvoll auszuarbeiten.

Um Deine Abneigung gegen RGB etwas zu verringern, habe ich heute mal den Tag damit verbraten und mir die vier verschiedenen Formate für Farbdefinition in VBA genauer angeschaut: Colorindex 1 - 46, Colorindex als xlBlack bzw. vbBlack, Farbwerte in Hex entweder mit Prefix # oder &H oder Dezimal als Long.

Die numerischen, ob jetzt RGB oder Dezimal haben den klaren Vorteil, dass man damit Farben per Formel setzen kann. Zum Beispiel für Farbverläufe, wie in meiner neuen ProgressBar-Spielerei. Ich persönlich ziehe das RGB-Format dem Dezimal vor, weil man mit ein bisschen Übung schnell den gewünschten Farbton definieren kann. Einfach in den drei Grundfarben von 0 bis 255 rauf und runter. Sehe ich z.B. RGB (0,0, 255), sehe ich umgehend Blau!* Außerdem gibt es dazu eine sehr gute Tabelle im Netz. Bei 16.777.215 Dezimalwerten, ist das eher schwierig.

Vermutlich zu Deiner Freude habe ich dabei Deine Enums -intelligent wieder entdeckt und nutze sie ausgiebig. Ziel: ein kleiner Farbkatalog mit den Indexfarben, den Styles von XL und einer persönlichen Favoritenliste für meine PERSONAL.XLSB. Sobald fertig, wird das in den Farbspielereien zu sehen sein.

*Du erinnerst Dich beerig ;) ?

lg
Folgende Benutzer bedankten sich beim Autor d'r Bastler für den Beitrag:
thowe
d'r Bastler von den VBAsteleien.de
Win 10 + Office 2019 & Win11 + Office 2021 + Visio 2019 pro & macOS.X15 + Office2019pro & Android12 & XL365
Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste