Як сканувати документи безпосередньо з 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 стало набагато зручніше.