Excel: как получить независимое от локали имя принтера? - PullRequest
1 голос
/ 27 января 2010

В Excel есть метод PrintOut, который печатает материал. Он принимает имя принтера в качестве параметра, и это имя принтера является не только именем системного принтера, но и сочетанием имени системного принтера и порта, к которому подключен принтер.

.PrintOut ActivePrinter:="MyPrinter" & " on " & "Ne00:"

Если вы укажете только имя системы, Excel не найдет его и не напечатает.

Обратите внимание, что " on " кусок в середине. Именно английское слово «on» делает «имя принтера Excel» удобным для людей.

Проблема в том, что этот маленький кусочек отличается в каждой локализованной версии Excel. Следовательно, код, который хочет составить истинное «имя принтера Excel», должен включать огромный switch, где будут перечислены все возможные локали Excel с соответствующим переводом «on». У меня даже нет такого списка. Но я хотел бы получить его или услышать о способе выяснить это произведение на лету. Свойство Application.International не содержит ответа.

1 Ответ

0 голосов
/ 27 января 2010

Этот парень использует записи реестра на

\ HKEY_CURRENT_USER \ Программное обеспечение \ Microsoft \ Windows NT \ CurrentVersion \ Devices \

http://www.dailydoseofexcel.com/archives/2008/04/05/getting-the-printer-port/

...