Пытаюсь установить принтер в Ехселе 2000 перед печатью через свойство Application.ActivePrinter. Никак не могу понять как преобразовать порт принтера, например LPT1, в формат, который требует Ексель, а именно: Ne0#, где #-цифра порта. Таким образом получается чтобы установить нужный принтер, мне нужно сделать следующее:
Application.ActivePrinter = "HP1320 (Ne00:)"
Здравствуйте, 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
Здравствуйте, 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 не дает читать последовательно значения реестра, не зная их наименования.
Здравствуйте, MadMaxII, Вы писали:
MMI>Я так же и беру порты, но индекс в массиве принтеров не совпадает с номером порта. Принтеры как правило все сетевые. Я уже понял, что надо брать имена портов из реестра, но вот беда — объект WScript.Shell не дает читать последовательно значения реестра, не зная их наименования.
здесьАвтор: Elena_
Дата: 08.02.06
ссылка на класс-обертку API для работы с реестром, там и перебор есть, и есть пример списка принтеров, может быть, пригодится.
Здравствуйте, Elena_, Вы писали:
E_>здесьАвтор: Elena_
Дата: 08.02.06
ссылка на класс-обертку API для работы с реестром, там и перебор есть, и есть пример списка принтеров, может быть, пригодится.
Спасибо.