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.
- Перейдіть на вкладку вид і виберіть макроси -> макроси.
- У випадаючому списку макроси з Виберіть Normal.dotm (загального шаблону). Вкажіть ім'я макросу WIA_Scan і натисніть кнопку створити.
- У вікні редактора Visual Basic виберіть меню Tools -> References.
- У списку підключається бібліотек виберіть Microsoft Windows Image Acquisition Library v2.0. Дана бібліотека Windows полволяют отримувати доступ до сканерів з коду VBA. Підтримуються тільки драйвера сканерів з підтримкою WIA (Windows Imaging Architecture). Тим самим ми зможемо використовувати класи бібліотеки сканування WIA (wiaaut.dll) в VBA коді.
- Вставте в редактор 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 - Тепер залишилося додати в стрічку Word новий розділ і додати в нього наш макрос (я додав кнопку сканування на вкладку Вставка). Перейдіть в налаштування стрічки, додайте нову групу, в яку помістіть макрос (ви можете змінити іконку кнопки).
Спробуйте тепер натиснути на нову кнопку сканування.
VBA макрос дозволяє викликати стандартне діалогове вікно інтерфейсу WIA. Якщо в системі є декілька джерел WIA, вам буде запропоновано вибрати пристрій, з якого потрібно отримати зображення.
Після того, як ви вибрали пристрій WIA, з'явиться стандартне діалогове вікно сканера з настройками сканування і вікном попереднього.
Після того, як ви вибрали налаштування сканування, натисніть кнопку Scan і дочекайтеся закінчення сканування.
Макрос автоматично збереже відскановане зображення у тимчасовий jpg файл і вставить його у відкритий документ Word. У документі Word ви можете змінити розмір і положення вставленої сканованою картинки.
Як ви бачите, тепер вставляти зображення зі сканера в документ Word стало набагато зручніше.