{"id":13609,"date":"2013-02-04T22:51:26","date_gmt":"2013-02-04T20:51:26","guid":{"rendered":"http:\/\/www.borncity.com\/blog\/?p=13609"},"modified":"2024-02-04T21:25:06","modified_gmt":"2024-02-04T20:25:06","slug":"scannen-in-word-2013-teil-2","status":"publish","type":"post","link":"https:\/\/borncity.com\/blog\/2013\/02\/04\/scannen-in-word-2013-teil-2\/","title":{"rendered":"Scannen in Word 2013 &ndash; Teil 2"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" style=\"margin: 0px 10px 0px 0px; display: inline;\" src=\"https:\/\/borncity.com\/blog\/wp-content\/uploads\/2012\/07\/Office1.jpg\" alt=\"\" width=\"55\" height=\"60\" align=\"left\" \/>[<a href=\"https:\/\/borncity.com\/blog\/2013\/02\/04\/scanning-in-word-2013\/\">English article<\/a>]In <a href=\"https:\/\/borncity.com\/blog\/2013\/02\/04\/scannen-in-word-2013-teil-1\/\">Teil 1<\/a> wurde ja festgestellt, dass das neue Word 2013 keine Scan-Funktion hat. Also habe ich nach einem Weg gesonnen, diese Funktion nachzur\u00fcsten. In Teil 1 habe ich die Funktionalit\u00e4t der Scan-Funktion vorgestellt und die Funktionen zum Aufrufen der VBA-Entwicklungsumgebung beleuchtet Nun liefere ich den VBA-Code nach und zeige, wie das Ganze als Schaltfl\u00e4che im Word implementiert wird.<\/p>\n<p><!--more--><span style=\"color: #000000; font-size: 1.4em; line-height: 1.5em;\">VBA-Code zum Zugriff auf die WIA-Schnittstelle<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ssl-vg03.met.vgwort.de\/na\/5db779873a9245b79d113553ea1d43b2\" alt=\"\" width=\"1\" height=\"1\" \/>Nachdem ich die Typ-Bibliothek f\u00fcr die WIA-Schnittstelle gefunden hatte, brachte eine kurze Recherche VBA-Code-Fragemente zum Zugriff auf die WIA-Schnittstelle zum Vorschein [1,2], zum L\u00f6schen einer Datei [3] und zum Ermitteln des <em>Temp<\/em>-Ordners [4]. Der <em>Temp<\/em>-Ordner dient zur Zwischenspeicherung der Scan-Datei. Hier nun der gesamte Quellcode des VBA-Makros.<\/p>\n<p>' Scan for Word 2013<br \/>\n' Author: G\u00fcnter Born www.borncity.de blog.borncity.com<br \/>\n' Implements a Scan function in Word 2013<\/p>\n<p>Private Declare Function GetTempPath Lib \"kernel32\" Alias \"GetTempPathA\" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long<\/p>\n<p>Private Function TempPath() As String<br \/>\nConst MaxPathLen = 256 ' Max path length<br \/>\nDim FolderName As String ' Folder name<br \/>\nDim ReturnVar As Long ' Return Value<br \/>\nFolderName = String(MaxPathLen, 0)<br \/>\nReturnVar = GetTempPath(MaxPathLen, FolderName)<br \/>\nIf ReturnVar &lt;&gt; 0 Then<br \/>\nTempPath = Left(FolderName, InStr(FolderName, Chr(0)) &#8211; 1)<br \/>\nElse<br \/>\nTempPath = vbNullString<br \/>\nEnd If<br \/>\nEnd Function<\/p>\n<p>Sub Scan()<br \/>\n'<br \/>\n' Scan Macro, to be invoked in Word<br \/>\n'<br \/>\nOn Error Resume Next<br \/>\nDim objCommonDialog As <em>WIA.CommonDialog<\/em><br \/>\nDim objImage As WIA.ImageFile<br \/>\nDim strDateiname<br \/>\n' instantiate Scan WIA objects<br \/>\nSet objCommonDialog = New WIA.CommonDialog<br \/>\nSet objImage = objCommonDialog.ShowAcquireImage<br \/>\nstrDateiname = TempPath &amp; \"Scan.jpg\" \u00a0' set temporary file<br \/>\nIf Not objImage Is Nothing Then<br \/>\nKill strDateiname<br \/>\nobjImage.SaveFile strDateiname ' save into temp file<br \/>\nSelection.InlineShapes.AddPicture strDateiname ' insert in doc<br \/>\nSet objImage = Nothing<br \/>\nEnd If<br \/>\nSet objCommonDialog = Nothing<br \/>\n' MsgBox strDateiname\u00a0 ' test output<br \/>\nEnd Sub<\/p>\n<p>Der VBA-Code instantiiert ein <em>WIA.CommonDialog<\/em>-Objekt und ruft dann die <em>ShowAcquireImage<\/em>-Methode dieses Objekts auf. Diese gibt ein Bild als Objekt zur\u00fcck, welches dann in einer Datei im <em>Temp<\/em>-Ordner des Benutzers abgelegt und dann im der <em>AddPicture<\/em>-Methode in Word eingef\u00fcgt wird. Der obige Makro-Code l\u00e4sst sich im Visual Basic-Editor-Fenster eingeben und dann speichern.<\/p>\n<h3>Die Schaltfl\u00e4che Scannen einf\u00fcgen<\/h3>\n<p>Als letzter Schritt im Dreiklang gilt es nun die Schaltfl\u00e4che <em>Scannen <\/em>einzurichten. Idealerweise sollte diese in der eigenen Gruppe <em>Scan<\/em> auf der Registerkarte <em>Einf\u00fcgen<\/em> zu finden und mit dem obigen Makro verbunden sein.<\/p>\n<p>1. Klicken Sie mit der rechten Maustaste auf das Men\u00fcband und w\u00e4hlen den Kontextmen\u00fcbefehl <em>Men\u00fcleiste anpassen<\/em>.<\/p>\n<p>2. W\u00e4hlen Sie im Dialogfeld <em>Word-Optionen<\/em> in der linken Liste <em>Befehle ausw\u00e4hlen <\/em>den Wert \"Makros\".<\/p>\n<p>3. Anschlie\u00dfend w\u00e4hlen Sie in der rechten Spalte \"Men\u00fcband anpassen\" den Eintrag <em>Einf\u00fcgen<\/em> und expandieren diesen.<\/p>\n<p>4. Dann f\u00fcgen Sie \u00fcber die Schaltfl\u00e4che <em>Neue Gruppe <\/em>eine Gruppe ein und benennen diese mit \"Scan\".<\/p>\n<p><a href=\"https:\/\/i.imgur.com\/ZhIN5qp.jpg\" target=\"_blank\" rel=\"noopener noreferrer\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/i.imgur.com\/ZhIN5qp.jpg\" alt=\"\" width=\"640\" height=\"386\" \/><\/a><\/p>\n<p>5. F\u00fcgen Sie mittels der Schaltfl\u00e4che <em>Hinzuf\u00fcgen<\/em> den Eintrag <em>Normal.NewMacros.Scan<\/em> zur rechten Liste im Zweig <em>Scan <\/em>hinzu.<\/p>\n<p>6. Benennen Sie den Eintrag mit <em>Scannen <\/em>und weisen Sie im ge\u00f6ffneten Dialogfeld ein Schaltfl\u00e4chensymbol hinzu.<\/p>\n<p>Sobald Sie das Dialogfeld \u00fcber die OK-Schaltfl\u00e4che schlie\u00dfen, sollte das VBA-Makro durch Anwahl der Schaltfl\u00e4che <em>Scannen <\/em>aufrufbar sein. Dann sollten die in Teil 1 gezeigten Scan-Dialogfelder erscheinen und Sie k\u00f6nnen den Scan vornehmen und in Word im Dokument einf\u00fcgen.<\/p>\n<p>Damit m\u00f6chte ich den Artikel schlie\u00dfen und hoffe mit den Ausf\u00fchrungen gen\u00fcgend Know-How geliefert zu haben, um aus Word 2013 zu scannen. <a href=\"https:\/\/borncity.com\/blog\/wp-content\/uploads\/2013\/02\/Scan1.zip\">Hier findet<\/a> sich noch eine Download-Datei <em>Scan1.zip<\/em>, in dem sowohl eine Word *.docm-Datei sowie der Makro-Code als .bas-Datei mit der fertigen L\u00f6sung finden. Den Makro-Code k\u00f6nnen Sie bei Bedarf unter Word im Dialogfeld <em>Organisieren <\/em>in die <em>Normal.dot <\/em>kopieren.<\/p>\n<p><strong>Artikel<\/strong><br \/>\na: <a href=\"https:\/\/borncity.com\/blog\/2013\/02\/04\/scannen-in-word-2013-teil-1\/\">Scannen in Word 2013<\/a> \u2013 Teil 1<br \/>\nb: <a href=\"https:\/\/borncity.com\/blog\/2013\/02\/04\/scannen-in-word-2013-teil-2\/\">Scannen in Word 2013<\/a> \u2013 Teil 2<br \/>\nc: <a href=\"https:\/\/borncity.com\/blog\/2010\/11\/26\/scannen-unter-word-20072010\/\">Scannen unter Word 2007\/2010<\/a><\/p>\n<p><strong>Links:<\/strong><br \/>\n1: <a href=\"https:\/\/web.archive.org\/web\/20140427113109\/http:\/\/social.msdn.microsoft.com:80\/Forums\/en-US\/dd81e87c-9687-49d6-a07a-17e669491e16\/operate-scanner-from-vba-in-excel?forum=isvvba\" target=\"_blank\" rel=\"noopener noreferrer\">Technet-Artikel<\/a><br \/>\n2: <a href=\"https:\/\/web.archive.org\/web\/20190322032547\/http:\/\/www.access-im-unternehmen.de:80\/index1.php?id=300&amp;BeitragID=419\" target=\"_blank\" rel=\"noopener noreferrer\">Scan in Access<\/a><br \/>\n3: <a href=\"https:\/\/web.archive.org\/web\/20190907180103\/http:\/\/www.office-loesung.de:80\/ftopic220661_0_0_asc.php\" target=\"_blank\" rel=\"noopener noreferrer\">Datei in VBA-L\u00f6schen<\/a><br \/>\n4: Temp-Ordner ermitteln<\/p>\n","protected":false},"excerpt":{"rendered":"<p>[English article]In Teil 1 wurde ja festgestellt, dass das neue Word 2013 keine Scan-Funktion hat. Also habe ich nach einem Weg gesonnen, diese Funktion nachzur\u00fcsten. In Teil 1 habe ich die Funktionalit\u00e4t der Scan-Funktion vorgestellt und die Funktionen zum Aufrufen &hellip; <a href=\"https:\/\/borncity.com\/blog\/2013\/02\/04\/scannen-in-word-2013-teil-2\/\">Weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[4358,395,2659,2658],"class_list":["post-13609","post","type-post","status-publish","format-standard","hentry","category-allgemein","tag-office-2013","tag-scannen","tag-vba","tag-word-2013"],"_links":{"self":[{"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/posts\/13609","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/comments?post=13609"}],"version-history":[{"count":0,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/posts\/13609\/revisions"}],"wp:attachment":[{"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/media?parent=13609"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/categories?post=13609"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/tags?post=13609"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}