Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: QR-Code für Excel, einfach und gratis

QR-Code für Excel, einfach und gratis
22.10.2016 16:46:53
Heliophob
Hallo zusammen,
mein Wunsch war es einen QR-Code (mit einem Link zu Google-Maps) in einer Excel-Tabelle zu generieren. Beim Druck soll der QR-Code automatisch generiert werden und mir das Leben etwas leichter machen. Derartige Plugins habe ich einige gefunden. Diese waren jedoch alle kostenpflichtig (Einzellizenz um die 200 EUR). Es geht auch ohne! Viel einfacherer als erwartet...! Für die Nachwelt möchte ich hier die Lösung festhalten...
Als Grundlage dient das Programm Zint [1]. Zum einen ist dies OpenSource (GNU-Licence) und zum anderen kommt es in doppelter Ausführung daher: Die grafische Variante (die wir nicht brauchen) und die Variante für die Befehlszeile (toll!). Ein Hoch an den Entwickler! Über die Befehlszeile lassen sich alle relevanten Daten per Excel-VBA an Zint übertragen und Zint erstellt daraus eine Grafik die man später (automatisch) in Excel importieren kann.
Zuerst sollte Zint an eine "gut zu erreichende" Stelle gelegt werden. In meinem Fall c:/zint/. Dies war bei mir besser, da es sonst möglicherweise Probleme mit langen Verzeichnisnamen und Leerzeichen geben kann.
Dann habe ich in meiner Excel-Tabelle Image-Steuerelement eingebaut. Dieses kann von Haus aus leider kein png! Zint kann aber auch gif - man muss einfach nur als Dateiname eine gif-Endung nennen und schon wird eine gif erstellt.
Im VBA-Editor erstelle ich dann folgenden Source:
Public Sub QRCode()
Dim x 'Befehlszeile
Dim datei As String 'Bilddatei
Dim URL As String 'URL die aus einer Zelle geholt wird
' Zelle mit der URL die ich als Link im QR-Code haben will.
' z.B: http://maps. _
google.de/maps?q=Fackenburger+Allee+11+23554+Lübeck
URL = Range("A1").Value
datei = "c:\Zint\temp.gif" 'Temporäre Bilddatei
' Details siehe Anleitung von Zint. 58 ist der Code zum erstellen eines QR-Codes.
' Es gehen auch praktisch fast alle anderen...
' Das Exit am Ende bewirkt, dass das CMD-Fenster sich wieder von selbst schließt.
x = Shell("cmd /k c:\Zint\zint -o " + datei + " -b 58 --vers=1 -d" + URL + "&& exit")
' wartet 0,8 Sekunden (Verarbeitungszeit von Zint mit Reserve-Zeit)
Application.Wait Now + TimeSerial(0, 0, 0.8)
' Image1 ist der Name vom Image-Steuerelement
Sheets("Druck").Image1.Picture = LoadPicture(datei)
' löscht die Temporäre Datei wieder
Kill datei
End Sub

Viel Spaß beim testen!
Janko Hack
[1] https://sourceforge.net/projects/zint/
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: QR-Code für Excel, einfach und gratis
22.10.2016 18:00:56
Michael
Hi Janko,
ich weiß zwar nicht, ob und wann ich's brauche... Aber: hast Du mal getestet, ob der QR-Code dann auch geht?
Ich könnte mir vorstellen, daß das "ü" aus Lübeck Schwierigkeiten macht, weil die Kommandozeile einen anderen Zeichensatz hat als Excel.
Evtl. müßte man Umlaute (und evtl. ein ß) maskieren durch "ue" oder "ss".
Schöne Grüße,
Michael
Anzeige
AW: QR-Code für Excel, einfach und gratis
22.10.2016 18:23:11
Heliophob
Hallo Michael,
ja, Du liegst richtig. Die Sonderzeichen gehen verstümmelt durch. In meinem Fall ist das nicht aufgefallen, weil Google-Maps das von selbst korrigiert hat. Im Zweifel muss man eben die Umlaute replacen - aber auch kein Drama.
Beste Grüße
Janko
AW: QR-Code für Excel, einfach und gratis
22.10.2016 18:25:08
Heliophob
Hab da gerade auch das passende gefunden :-)
https://dbwiki.net/wiki/VBA_Tipp:_Umlaute_ersetzen
Anzeige
AW: QR-Code für Excel, einfach und gratis
22.10.2016 18:28:35
Michael
Hi Janko,
aha! Ist klar kein Drama, aber wissen muß man es.
In der Praxis wird es wohl eher darum gehen, eigene QR-Codes zu erstellen: dann hat man ja sowieso die Kontrolle...
Also: danke.
Gute Zeit,
Michael
AW: QR-Code für Excel, einfach und gratis
22.10.2016 19:16:34
Heliophob
Das geht besser zum konvertieren:
Public Function Umlaut(S)
S = Replace(S, "ü", "ue")
S = Replace(S, "ä", "ae")
S = Replace(S, "ö", "oe")
S = Replace(S, "Ü", "Ue")
S = Replace(S, "Ä", "Ae")
S = Replace(S, "Ö", "Oe")
S = Replace(S, "ß", "ss")
Umlaut = S
End Function

Anzeige
AW: QR-Code für Excel, einfach und gratis
24.10.2016 23:41:52
Martin
Hallo Heliophob,
...und hier noch eine dritte Variante der Umlaut-Konvertierung:
Function Umlaute(strText As String)
Dim arrUml As Variant, i As Integer
arrUml = Array("ü", "ue", "ä", "ae", "ö", "oe", "Ü", "Ue", "Ä", "Ae", "Ö", "Oe", "ß", "ss")
For i = 0 To 13 Step 2
strText = Replace(strText, arrUml(i), arrUml(i + 1))
Next
Umlaute = strText
End Function
Viele Grüße
Martin
Anzeige
AW: QR-Code für Excel, einfach und gratis
26.10.2016 10:22:17
Heliophob
Änderungen:
- Es wird auf die Ausführung der Shell gewartet (kein sleep mehr)
- Umlaute (öäüÖÄÜß) werden für die URL nach UTF-8 kodiert.
Hier meine finale Version:
Public Function Umlaut(S)
'URL-Encode (UTF-8)
S = Replace(S, "ü", "%C3%BC")
S = Replace(S, "ä", "%C3%A4")
S = Replace(S, "ö", "%C3%B6")
S = Replace(S, "Ü", "%C3%9C")
S = Replace(S, "Ä", "%C3%84")
S = Replace(S, "Ö", "%C3%96")
S = Replace(S, "ß", "%C3%9F")
S = Replace(S, " ", "+")
Umlaut = S
End Function

Public Sub SartShell_Wait(cmdline$)
' Führt einen Shell-Befehl aus und *wartet* darauf, dass dieses fertig ist.
CreateObject("WScript.Shell").Run cmdline, 1, True
End Sub
Public Sub QRCode()
Dim x As String
Dim datei As String 'Bilddatei
Dim URL As String
URL = Umlaut(Range("A1").Value)
URL = "http://maps.google.de/maps?q=" + URL
datei = "c:\Zint\1.gif"
x = "cmd /k c:\Zint\zint -o " + datei + " -b 58 --vers=1 -d" + URL + "&& exit"
Call SartShell_Wait(x)
Sheets("Druck").Image1.Picture = LoadPicture(datei)
Kill datei
End Sub

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

QR-Code in Excel erstellen: So funktioniert's


Schritt-für-Schritt-Anleitung

Um einen QR-Code in Excel zu erstellen, benötigst Du das Programm Zint, welches Open Source ist. Hier ist eine einfache Anleitung, wie Du dies mit Excel VBA umsetzen kannst:

  1. Zint herunterladen und installieren:

    • Lade Zint von hier herunter und installiere es unter C:\Zint\.
  2. Image-Steuerelement in Excel einfügen:

    • Öffne Excel und füge ein Image-Steuerelement auf dem Arbeitsblatt "Druck" ein.
  3. VBA-Editor öffnen:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  4. VBA-Code hinzufügen:

    • Füge folgenden Code in ein Modul ein:
    Public Function Umlaut(S)
       S = Replace(S, "ü", "%C3%BC")
       S = Replace(S, "ä", "%C3%A4")
       S = Replace(S, "ö", "%C3%B6")
       S = Replace(S, "Ü", "%C3%9C")
       S = Replace(S, "Ä", "%C3%84")
       S = Replace(S, "Ö", "%C3%96")
       S = Replace(S, "ß", "%C3%9F")
       S = Replace(S, " ", "+")
       Umlaut = S
    End Function
    
    Public Sub QRCode()
       Dim x As String
       Dim datei As String
       Dim URL As String
       URL = Umlaut(Range("A1").Value) ' URL aus Zelle A1
       datei = "C:\Zint\temp.gif"
       x = "cmd /k C:\Zint\zint -o " + datei + " -b 58 --vers=1 -d" + URL + " && exit"
       CreateObject("WScript.Shell").Run x, 1, True
       Sheets("Druck").Image1.Picture = LoadPicture(datei)
       Kill datei
    End Sub
  5. QR-Code generieren:

    • Gebe in Zelle A1 die URL ein, die Du im QR-Code speichern möchtest.
    • Führe das Makro QRCode aus, um den QR-Code zu erstellen.

Häufige Fehler und Lösungen

  • Fehler: QR-Code wird nicht angezeigt:

    • Stelle sicher, dass der Pfad zu Zint korrekt ist.
  • Fehler: Sonderzeichen werden nicht erkannt:

    • Ersetze Umlaute in der URL mithilfe der Umlaut-Funktion.
  • Fehler: Bild wird nicht geladen:

    • Überprüfe, ob die temporäre Datei nach der Ausführung des Codes gelöscht wird.

Alternative Methoden

Falls Du keinen VBA-Code verwenden möchtest, kannst Du auch kostenlose Online QR-Code Generatoren nutzen. Diese bieten oft eine einfache Möglichkeit, QR-Codes zu erstellen, ohne dass Du zusätzliche Software installieren musst.


Praktische Beispiele

Hier sind einige Beispiele, wie Du QR-Codes in Excel nutzen kannst:

  1. QR-Code mit Link zu Google Maps:

    • Gebe in Zelle A1 den Link ein: http://maps.google.de/maps?q=Fackenburger+Allee+11+23554+Lübeck.
  2. QR-Code für eine Webseite:

    • Gebe in Zelle A1 die URL Deiner Webseite ein. Führe dann das Makro aus.

Tipps für Profis

  • Automatisierung: Du kannst den QR-Code automatisch bei jedem Drucken generieren, indem Du die Workbook_BeforePrint-Ereignisprozedur in ThisWorkbook verwendest.

  • QR-Code aus Liste erstellen: Wenn Du mehrere QR-Codes generieren möchtest, kannst Du eine Schleife in Dein Makro einfügen, um alle URLs aus einer Liste zu verarbeiten.


FAQ: Häufige Fragen

1. Wie kann ich QR-Codes ohne Add-In erstellen? Ja, Du kannst QR-Codes mit VBA und dem Zint-Tool erstellen, ohne ein kostenpflichtiges Add-In verwenden zu müssen.

2. Funktioniert das auch mit Excel 2016? Ja, der beschriebene Prozess funktioniert mit Excel 2016 und neueren Versionen.

3. Was ist der Vorteil von Zint? Zint ist ein kostenloser, Open-Source QR-Code Generator, der eine Vielzahl von Optionen bietet und einfach in Excel integriert werden kann.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige