Scannen in Word 2013 – Teil 1

Das neue Office 2013 bzw. Office 365 wird von Microsoft ja mit vielen Neuerungen angepriesen, Cloud und so – aber dann das: Word hat noch nicht mal eine Scan-Funktion – man müsste in OneNote rein, dort Scannen und das Ganze per Zwischenablage in das Word-Dokument reinfummeln. Kann nicht sein, da muss eine Lösung her.

Irgendwie werde ich den Eindruck nicht los, dass Microsofts Entwicklern an manchen Stellen etwas das Gefühl für die Erfordernisse der Anwender fehlt. So z.B. beim Umstand, das OneNote eine Scan-Integration besitzt, während diese bei Word 2013 fehlt. Als ich hier auf das alte Word-Scan-Problem gestoßen bin, hat es mich doch gejuckt, mal zu testen, ob meine VBA-Fähigkeiten schon gänzlich verkümmert sind. Denn mir war nach kurzer Recherche klar, das die von mir für frühere Office-Versionen zusammen getragene Lösung nicht mehr tut. Da ich gerade am zweiten Büchlein zu Microsoft Office 2013 schreibe, habe ich mal zwei Stunden geopfert und eine Lösung entwickelt.

So soll die Lösung aussehen

Um halbwegs komfortabel bei der Sache weiter zu kommen, stelle ich mir vor, dass eine Schaltfläche Scannen im Menüband auf der Registerkarte Einfügen des Word-Fensters zu finden ist.

Scan in Word 2013

Wählt der Benutzer diese Schaltfläche an, zeigt Windows als erstes das Auswahldialogfeld für die verfügbaren WIA-Geräte (hier iPad, Digicam und Scanner).

WIA-Dialog zum Scannen

Wählt der Benutzer ein Gerät und dann die OK-Schaltfläche, soll das WIA-Dialogfeld zur Scanner-Steuerung erscheinen.

WIA-Scanner-Steuerung

Über die Scannen-Schaltfläche wird das Bild erfasst und nach einer temporären Zwischenspeicherung an der aktuellen Stelle im Word-Dokument eingefügt. Fertig.

Voraussetzung ist daher natürlich, dass das Ganze über WIA-Treiber durch Windows unterstützt wird.

Kleines Makro zur WIA-Steuerung gefällig

Und ab diesem Zeitpunkt waren ein paar Fingerübungen zum Testen, ob ich noch scripten kann, fällig. Aber wo frickelt man in Word 2013 eigentlich ein Makro ein?

Scan-Makro einbinden

Nach ein wenig Sucherei stand fest: Auf der Registerkarte Ansicht des Menübands gibt es die im obigen Screenshot gezeigte Menüschaltfläche Makros. Also fix den Befehl zur Makrobearbeitung aufgerufen, einen Makronamen eingetippt und auf Erstellen geklickt. In der VBA-Entwicklungsumgebung ging es dann zur Sache: Meine erste Idee, war, im (hier sichtbaren) Objektkatalog nach einem Word-Objekt zum Scannen zu suchen.##

Scan-Objekt einbinden

Aber ich wurde nicht fündig. Dann habe ich kurz die betreffenden OneNote-Methoden zum Aufrufen der Scan-Schaltfläche abgegrast aber auch da bin ich auf die Schnelle gescheitertet. Ich habe einfach keine entsprechende Methode gefunden.

Also bin ich über das Menü Extras und den Befehl Verweise in das oben im Screenshot im Vordergrund sichtbare Dialogfeld gegangen und habe mir die Bibliotheken angesehen. Und da gab es eine “Windows Image Acquisition Library” Typ-Bibliothek, über die ich auf die WIA-Schnittstelle zugreifen konnte. Diese Bibliothek muss (wie im Bild sichtbar) über ein markiertes Kontrollkästchen als Referenz eingebunden sein.

Und damit war das Ganze klar, ein paar VBA-Befehle und das Ganze in Word sauber als Schaltfläche einbauen. Wie das funktioniert, beschreibe ich in Teil 2.

Artikel
a: Scannen in Word 2013 – Teil 1
b: Scannen in Word 2013 – Teil 2
c: Scannen unter Word 2007/2010

Scanfunktion in Word 2013/2016 nachrüsten – Teil 1
Scanfunktion in Word 2013/2016 nachrüsten – Teil 2

Dieser Beitrag wurde unter Allgemein abgelegt und mit , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

18 Antworten zu Scannen in Word 2013 – Teil 1

  1. Marc sagt:

    Danke, das werde ich mir die nächsten Tage mal anschauen (+einbauen)

  2. Günter Born sagt:

    Beachtet meinen Kommentar in Teil 2

  3. Dirk Sch. sagt:

    Funktioniert wunderbar Danke für die Info.
    Ist schon der Hammer das MS sowas nicht mehr impletiert.

    Danke

  4. Andreas G. sagt:

    Sehr gute Idee. Bei dem Hinweis auf OneNote ist mir gleich eingefallen, dass dort die umfangreichen Zeichentools fehlen, die es in Word gibt.
    Danke für den guten Tipp.

  5. Joachim Bittner sagt:

    Ich habe ihren blog versucht in mein Word 2013 mit 64 bit zu integrieren und Windows 8 pro x64
    leider kommt beim testen immer wieder die Fehlermeldung bei folgender stelle

    Dim objCommonDialog As WIA.CommonDialog
    Bewnutzerdefinierter typ kann nicht Definiert werden …

    weiß nicht was ich machen soll

  6. Günter Born sagt:

    Dann ist vermutlich keine Referenz auf die betreffende Bibliothek in der VBA-Entwicklungsumgebung definiert worden. Die Vorgehensweise ist im Artikel beschrieben. Bitte nochmals prüfen.

  7. Mathias K. sagt:

    Ich habe die 2 Dateien in den Startup- bzw. Addin – Ordner kopiert und ausgeführt.

    In Exel 2013 funktioniert der Scan einwandfrei.

    Beim ausführen wir das Makro erkannt und ich muss aktivieren anklicken.
    In Word 2013 kommt dann die Fehlermeldung: Makro wurde nicht gefunden.

    Was mache ich falsch?

  8. Logo sagt:

    Hallo zusammen und vielen Dank für die Hinweise!
    Bei mir klappte es irgendwie nicht mit Deinem Makro. Entweder kam nach dem Scan der Hinweis:“Ein Fehler ist aufgetreten.Möglicherweise ist kein WIA-fähiges Gedrät angeschlossen“ (was nicht stimmte) oder dass das Makro nicht gefunden wurde.
    Unter https://web.archive.org/web/20151228084937/http://www.gmayor.com:80/scan_into_word_2007.htm habe ich dann ein Script gefunden was auf Deinem basiert und bei mir sehr gut mit Word 2013 funktioniert.

  9. Palewolf sagt:

    Hallo,
    habe vor ein paar Tagen auf meinem neuen Rechner Word 2013 installiert und schon viel Zeit nach dem Scanner-Button gesucht. Nun weiß ich, dass er fehlt. Danke für die Info und die anderen Hinweise.
    Als Laie weiß ich aber nicht, ob ich Visual Basic auf meinem Lenovo-Rechner habe. (Die Suchfunktion führt nicht dahin.) Ist das üblicherweise installiert?
    Viele Grüße
    Palewolf

  10. Micha sagt:

    Habe zwar nun den Button „Scannen“ unter der Registrierkarte „Einfügen“ bei Word 2013, dennoch kommt aber stets diese Fehlermeldung – siehe Bild-Link.

    http://www.fastpic.info/image/20150323/54916a37f6.jpg

    Macros sind unter Optionen aktiviert!

    Wissen Sie, warum das SCAN-Macro bei mir nicht funktioniert?

  11. Rudolf sagt:

    Hallo Herr Born,
    sehr schön, Ihr Makro (Scan01.bas) hat auf Anhieb in Word und PowerPoint 2013 funktioniert.
    Beim Publisher gelang mir mit gleicher Vorgehensweise dies nicht. Hier kommt die Meldung „Fehler beim kompilieren, Methode oder Datenobjekt nicht gefunden“ und „InlineShapes“ wird markiert.
    Haben Sie eine Idee wie man es auch beim Puplisher hinbekommen kann?
    Würde mich über einen Lösung freuen.
    Rudolf

  12. Fabian Schlieper sagt:

    Hallo Günter,

    Danke für den Code!
    Kleine Ergänzung: anstatt die „gebastelte“ TempPath Funktion kann man das aktuelle Temp-Verzeichnis auch einfach per Environ(„temp“) ermitteln.

    Also
    strDateiname = TempPath & „Scan.jpg“ ‚ set temporary file
    durch
    strDateiname = Environ(„temp“) & „Scan.jpg“ ‚ set temporary file ersetzen.

    Gruß
    Fabian

  13. Matthias sagt:

    Hallo Herr Born,

    vielen Dank für die Bereitstellung dieser Anleitung und des Codes. Und ebenfalls vielen Dank an Fabian Schlieper für den Tip wodurch vieles von Code überflüssig und einfacher geworden ist.

    Der folgende Code funktioniert bei mir mit Word 2016, 64bit ohne Probleme:
    ‚ Author: Günter Born http://www.borncity.de blog.borncity.com
    ‚ Implements a Scan function in Word
    Sub Scan()
    On Error Resume Next
    Dim objCommonDialog As WIA.CommonDialog
    Dim objImage As WIA.ImageFile
    Dim strDateiname
    ‚ instantiate Scan WIA objects
    Set objCommonDialog = New WIA.CommonDialog
    Set objImage = objCommonDialog.ShowAcquireImage

    strDateiname = Environ(„temp“) & „\Scan.jpg“ ‚ set temporary file ersetzen.

    If Not objImage Is Nothing Then
    Kill strDateiname
    objImage.SaveFile strDateiname ‚ save into temp file
    Selection.InlineShapes.AddPicture strDateiname ‚ insert into document
    Set objImage = Nothing
    End If
    Set objCommonDialog = Nothing

    ‚ MsgBox strDateiname ‚ test output
    End Sub

    Leider scheint es zwischen Word und Outlook einen Unterschied zu geben. Ich habe in Outlook folgende Schritte unternommen:

    Outlook starten -> Tastenkombination [ALT] + [F11] gedrückt
    Menü -|Extras|-|Verweise| angeklickt und wie gehabt „Microsoft Windows Image Acquisition Libary v2.0“ ausgewählt.

    Danach bin ich zu „Project1 (VbaProject.OTM)“ -> „Microsoft Outlokk Objeckte“ -> „ThisOutlookSession“ gewechselt und habe den Code eingegeben.

    Die Schaltfläche habe ich wie von Ihnen beschrieben ebenfalls in Outlook angelegt. Beim klicken auf diese öffnet sich auch das Scanfenster wo ich den entsprechenden Scanner auswähle und dann auf scannen klicke. Er scannt das Dokument aber es wird nicht in die Mail eingefügt.

    Achso, unter [Datei] -> [Optionen] -> [Trust Center] > [Einstellungen für das Trust Center…] -> [Makroeinstellungen] habe ich „Alle Makros aktivieren…“ ausgewählt.

    Hätte hierfür jemand eventuell eine Lösung parat?

    Vielen Dank
    Matthias

  14. Raimund Bähr sagt:

    Hallo,

    bei mir kommt diese Meldung:
    Fehler beim Kompilieren:
    Mehrdeutiger Name: Scan

    Word: 2013, Windows 10, 64 Bit Rechner

    Danke vorab für Deinen Artikel.
    HG
    Raimund

  15. DobayGerhard sagt:

    Kannst du mir bitte weiterhelfen!
    Das Scannen von einer Seite über das Flachbett funktioniert, aber über den Papiereinzug wird nur die erste Seite eingescannt.
    Es laufen allen 10 Seiten durch den Papiereinzug aber im Word Dokument wird immer nur eine die 1. Seite angezeigt.
    Vielleicht hast du eine Lösung ich, bräuchte dies dringend! Unter ALT E G S hat das einwandfrei funktioniert mit dem neuen 365 nicht.
    Wäre auch bereit die Kosten für eine Lösung zu übernehmen, da alles andere viel mehr Zeitaufwand ist und wir bei der ‚Arbeit eingeschränkt sind.
    Danke im Voraus.
    LG. Gerhard

    • Günter Born sagt:

      Die Lösung unterstützt nur das, was der WIA 2.0-Treiber bereitstellt. Papiereinzug gehört imho nicht dazu. Ergo kann ich da auch nichts ändern. Das muss über spezielle Lösungen für die jeweiligen Geräte implementiert werden. Das ist aber nicht meine Baustelle.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert