Найти тему
О том - о сём!

Как сканировать из Excel с именем документа как в ячейке

Очень интересным и полезным решением для решения каких-либо офисных задач является создание некоего архива документов, которым легко и быстро можно воспользоваться из рабочей таблицы Excel.

Делюсь своими наработками!

1. Что необходимо сделать, это скачать программку для сканирования iCopy1.6.3 и соответственно разместить на своем компьютере.

Оказалась весьма интересная программка позволяющая сканировать с помощью кода (или командной строки о чем далее)

2. Размещаем на своей таблице (где это для Вас будет удобным) кнопочку, только берем ее из "Элементов управления"

-2

Соответственно настраиваем под себя размер, цвет, надпись в свойствах кнопки

-3

Далее нам необходимо добавить код на VBA.

Открываем редактор VBA и вставляем:

Private Sub CommandButton1_Click()
Dim iStr As String
Dim Filename As String
iStr = ActiveCell.Value
Filename$ = "\\10.100.100.100\Archiv\Doc\" + Left(iStr, Len(iStr)) + ".pdf"
If Dir(Filename) = "" Then
Shell ("CMD /c X:\Soft\iCopy1.6.3\Icopy.exe /file /pdf /copyMultiplePages /adf /r 200 /path " + Filename)
Exit Sub
Else:
MsgBox "Данный документ уже есть в копиях " & Left(iStr, Len(iStr)) + ".pdf"
Shell "CMD /c " & Filename
End If
End Sub

Теперь разберем каждую строчку:

Dim iStr As String и Dim Filename As String - Создаем текстовые массивы

iStr = ActiveCell.Value - Внедряем имя документа из активной ячейки в наш массив (т.е. перед нажатием кнопки Вы должны встать курсором на требуемую ячейку с именем документа)

Filename = "\\10.100.100.100\Archiv\Doc\" + Left(iStr, Len(iStr)) + ".pdf" - добавляем к названию документа полный путь ( \\10.100.100.100\Archiv\Doc\ - у меня сетевой адрес, но можно заменить и на локальный), где будет храниться наш файлик и добавляем еще расширения файла.

If Dir(Filename) = "" Then - проверяем есть-ли в нашем архиве подобные файлы, если нет, то

Shell ("CMD /c X:\Soft\iCopy1.6.3\Icopy.exe /file /pdf /copyMultiplePages /adf /r 200 /path " + Filename) - запускаем нашу программку Icopy, ( X:\Soft\iCopy1.6.3\Icopy.exe - соответственно путь к программе у Вас будет свой) / далее идут команды непосредственно для самой программы, т.е. выбираем копирование в файл с расширением pdf далее рассматриваем вариант многостраничности, разрешение сканирования у меня стоит 200dpi и плюс сам путь из текстового массива к файлу.

Exit Sub - после выполнения закончить программу

Else: - иначе если документ с таким названием есть в архиве

MsgBox "Данный документ уже есть в копиях " & Left(iStr, Len(iStr)) + ".pdf" - выдаем предупреждение об этом

Shell "CMD /c " & Filename - и открываем данный документ

Соответственно в данном варианте у Вас должна быть установлена какая-либо программа для открытия документов pdf формата. Например AdobeReader. Ну и соответственно должен быть подключен сканер.

Надеюсь данная статья поможет Вам облегчить Ваши рутинные задачи.

Всем добра!