Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

печать на заданный принтер

43K
08 августа 2009 года
Sadddd
8 / / 22.01.2009
Господа, подскажите лузеру......

переменная Prt содержит имя принтера (не default).
как печатать именно на этот Prt

Заранее благодарен
297
08 августа 2009 года
koodeer
1.2K / / 02.05.2009
Смотрим в MSDN PrinterName property.
Там всё написано. С примерами кода.
43K
08 августа 2009 года
Sadddd
8 / / 22.01.2009
2 koodeer
Поиск по MSDN дает такое (заметь... дошел до 248-го сообщения :))):
[COLOR="DarkSlateBlue"]Results 201-248 of about 1,500 for: PrinterName property[/COLOR]

А можно пальцем ткнуть? Пожалуйста!
297
08 августа 2009 года
koodeer
1.2K / / 02.05.2009
Хм, я имел в виду локальную MSDN.

Вот ссылка MSDN онлайн:
тыц
43K
09 августа 2009 года
Sadddd
8 / / 22.01.2009
Цитата: koodeer
Хм, я имел в виду локальную MSDN.


Я в ней и искал. А ты думал я поиск по слову...:):):)
Действительно, я не очень понятно вопрос задал.... извини и спасибо.

Но вопрос не снят. Код нужен на VBA Excal03. Я так понял, что метод PrintOut не подходит. Тогда чем? Подмена DefaultPrint на нужный тоже не желательна.
Подскажите.

43K
09 августа 2009 года
Sadddd
8 / / 22.01.2009
Не знаю где затупил, но PrintOut прекрасно работает:mad:.

Может кому пригодится... организует ComboBox со списком доступных принтеров и возможностью выбора. DefaultPrinter не меняет.

' для выбора принтера
'Option Explicit
Private Declare Function GetProfileString Lib "kernel32" _
Alias "GetProfileStringA" _
(ByVal lpAppName As String, _
ByVal lpKeyName As String, _
ByVal lpDefault As String, _
ByVal lpReturnedString As String, _
ByVal nSize As Long) As Long

' для выбора принтера

Public Function ProfileLoadWinIniList(lst As MSForms.ComboBox, lpSectionName As String) As Long
Dim success As Long
Dim nSize As Long
Dim lpKeyName As String
Dim ret As String
ret = Space$(8102)
nSize = Len(ret)
success = GetProfileString(lpSectionName, vbNullString, "", ret, nSize)
If success Then
ret = Left$(ret, success)
x = Application.ActivePrinter()
Do Until ret = ""
lpKeyName = StripNulls(ret)
If Left(lpKeyName, 4) = Left(x, 4) Then
ComboBox1.Text = lpKeyName - [COLOR="DarkRed"]тута хранится имя принтера[/COLOR]
Else
lst.AddItem lpKeyName
End If
Loop
End If
ProfileLoadWinIniList = lst.ListCount
End Function

' для выбора принтера

Private Function StripNulls(startstr As String) As String
Dim pos As Long
pos = InStr(startstr$, Chr$(0))
If pos Then
StripNulls = Mid$(startstr, 1, pos - 1)
startstr = Mid$(startstr, pos + 1, Len(startstr))
End If
End Function

Private Sub UserForm_Activate()
Call ProfileLoadWinIniList(ComboBox1, "PrinterPorts") - [COLOR="DarkRed"]вызов процедуры определения списка принтеров[/COLOR]
End Sub

ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=SpinButton1.Value, ActivePrinter:=ComboBox1.Text, Collate:=True
- [COLOR="DarkRed"]печатаем на то, что в ComboBox1.Text
[/COLOR]
21K
12 августа 2009 года
tolikt
3 / / 25.09.2006
Где-то неточность в программке списка доступных принтеров, наверное...
Не совсем верно даёт список принтеров в Combobox, а как бы через один..
43K
12 августа 2009 года
Sadddd
8 / / 22.01.2009
посмотри это
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог