Как сканировать документы напрямую из Word 2016, 2013, 2010

by Joe Hoe
Как сканировать документы напрямую из Word 2016, 2013, 2010

Microsoft по какой-то причине убрала возможность сканировать напрямую из Word еще в версии Office 2010 (убрали вместе с полезной утилитой MODI — Microsoft Office Document). В более новых версиях Word 2013 и Word 2016 также нет кнопки сканирования напрямую из документа Word. Чтобы вставить изображение со сканера в Word приходится отсканированное изображение в графический файл на диск с помощью диалога утилиты сканирования от производителя сканера, а потом вставлять в документ Word сохраненный файл рисунка. Все это очень неудобно, особенно, когда приходится сканировать и вставлять в документы Word десятки изображений в день.


В этой статье мы рассмотрим способ добавления собственной кнопки запуска мастера сканирования в Word и код небольшого VBA макроса, позволяющий автоматически сканировать и вставлять изображения со сканера напрямую в Word. Данная инструкция применима к Word 2016, 2013 и 2010 (учитывайте различия в интерфейсе).

Итак, добавим новый макрос сканирования в наш Word 2016.

  1. Перейдите на вкладку Вид и выберите Макросы -> Макросы.
  2. В выпадающем списке Макросы из выберите Normal.dotm (общего шаблона). Укажите имя макроса WIA_Scan и нажмите кнопку Создать.
  3. В появившемся окне редактора Visual Basic выберите меню Tools -> References.
  4. В списке подключается библиотек выберите Microsoft Windows Image Acquisition Library v2.0. Данная библиотека Windows полволяет получать доступ к сканерам из кода VBA. Поддерживаются только драйвера сканеров с поддержкой WIA (Windows Imaging Architecture). Тем самым мы сможем использовать классы библиотеки сканирования WIA (wiaaut.dll) в VBA коде.
  5. Вставьте в редактор Visual Basic следующий VBA код:Sub WIA_Scan()

'

' WIA_Scan макрос для MS Office 2016/2013

'

'

On Error Resume Next

Dim objWIADialog As WIA.CommonDialog

Dim objScanImage As WIA.ImageFile

Dim strDate

' инициализация объектов WIA

Set objWIADialog = New WIA.CommonDialog

Set objScanImage = objWIADialog.ShowAcquireImage

' путь к временному файлу

strDate = Environ("temp") & "\Scan.jpg"

If Not objScanImage Is Nothing Then

'удаляем старый файл

Kill strDate

' сохраняем скан во временный файл

objScanImage.SaveFile strDate

' вставляем файл Scan.jpg в документ Word

Selection.InlineShapes.AddPicture strDate

Set objScanImage = Nothing

End If

Set objWIADialog = Nothing

End Sub

Совет. В Word 2010 достаточно указать следующий код (однако в Word 2016 и 2013 он не работает, т.к. функция WordBasic.InsertImagerScan в Office 2010 была удалена).

Sub WIA_Scan ()

On Error Resume Next

WordBasic.InsertImagerScan

End Sub

6. Теперь осталось добавить в ленту Word новый раздел и добавить в него наш макрос (я добавил кнопку сканирования на вкладку Вставка). Перейдите в настройки ленты, добавьте новую группу, в которую поместите макрос (вы можете изменить иконку кнопки).

Попробуйте теперь нажать на новую кнопку сканирования.

VBA макрос позволяет вызвать стандартное диалоговое окно интерфейса WIA. Если в системе имеется несколько источников WIA, вам будет предложено выбрать устройство, с которого нужно получить изображение.



После того, как вы выбрали устройство WIA, появится стандартное диалоговое окно сканера с настройками сканирования и окном предпросмотра.



После того, как вы выбрали настройки сканирования, нажмите кнопку Scan и дождитесь окончания сканирования.

Макрос автоматически сохранит отсканированное изображение во временный jpg файл и вставит его в открытый документ Word. В документе Word вы можете изменить размер и положение вставленной сканированной картинки.

Как вы видите, теперь вставлять изображение со сканера в документ Word стало гораздо удобнее.

Источник

October 18, 2018
by Joe Hoe