Выбор принтера в Excel из скрипта
От: MadMaxII  
Дата: 30.10.06 13:14
Оценка:
Пытаюсь установить принтер в Ехселе 2000 перед печатью через свойство Application.ActivePrinter. Никак не могу понять как преобразовать порт принтера, например LPT1, в формат, который требует Ексель, а именно: Ne0#, где #-цифра порта. Таким образом получается чтобы установить нужный принтер, мне нужно сделать следующее:
Application.ActivePrinter = "HP1320 (Ne00:)"
Re: Выбор принтера в Excel из скрипта
От: Elena_ Россия  
Дата: 30.10.06 14:01
Оценка:
Здравствуйте, MadMaxII, Вы писали:

MMI>Пытаюсь установить принтер в Ехселе 2000 перед печатью через свойство Application.ActivePrinter. Никак не могу понять как преобразовать порт принтера, например LPT1, в формат, который требует Ексель, а именно: Ne0#, где #-цифра порта. Таким образом получается чтобы установить нужный принтер, мне нужно сделать следующее:

MMI>
MMI>Application.ActivePrinter = "HP1320 (Ne00:)"
MMI>


Вообще-то, такой макрос выдает порты и названия, это собственно из реестра информация. Правда с сетевыми бывают нюансы, может быть, надо прямо в реестре смотреть.
    Set WSHNetwork = CreateObject("WScript.Network")
    'MsgBox WSHNetwork.ComputerName
    Dim printersArray
    Set printersArray = WSHNetwork.EnumPrinterConnections

    Dim i
    For i = 0 To printersArray.Count - 1 Step 2
        MsgBox printersArray.Item(i) & " = " & printersArray.Item(i + 1)
    Next i
Пользователь — друг программиста!
Re[2]: Выбор принтера в Excel из скрипта
От: MadMaxII  
Дата: 30.10.06 14:20
Оценка:
Здравствуйте, Elena_, Вы писали:

E_>Вообще-то, такой макрос выдает порты и названия, это собственно из реестра информация. Правда с сетевыми бывают нюансы, может быть, надо прямо в реестре смотреть.

E_>
E_>    Set WSHNetwork = CreateObject("WScript.Network")
E_>    'MsgBox WSHNetwork.ComputerName
E_>    Dim printersArray
E_>    Set printersArray = WSHNetwork.EnumPrinterConnections

E_>    Dim i
E_>    For i = 0 To printersArray.Count - 1 Step 2
E_>        MsgBox printersArray.Item(i) & " = " & printersArray.Item(i + 1)
E_>    Next i
E_>


Я так же и беру порты, но индекс в массиве принтеров не совпадает с номером порта. Принтеры как правило все сетевые. Я уже понял, что надо брать имена портов из реестра, но вот беда — объект WScript.Shell не дает читать последовательно значения реестра, не зная их наименования.
Re[3]: Выбор принтера в Excel из скрипта
От: Elena_ Россия  
Дата: 30.10.06 15:50
Оценка: 2 (1)
Здравствуйте, MadMaxII, Вы писали:

MMI>Я так же и беру порты, но индекс в массиве принтеров не совпадает с номером порта. Принтеры как правило все сетевые. Я уже понял, что надо брать имена портов из реестра, но вот беда — объект WScript.Shell не дает читать последовательно значения реестра, не зная их наименования.


здесь
Автор: Elena_
Дата: 08.02.06
ссылка на класс-обертку API для работы с реестром, там и перебор есть, и есть пример списка принтеров, может быть, пригодится.
Пользователь — друг программиста!
Re[4]: Выбор принтера в Excel из скрипта
От: MadMaxII  
Дата: 31.10.06 09:53
Оценка:
Здравствуйте, Elena_, Вы писали:

E_>здесь
Автор: Elena_
Дата: 08.02.06
ссылка на класс-обертку API для работы с реестром, там и перебор есть, и есть пример списка принтеров, может быть, пригодится.


Спасибо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.