Strona: [  << <   1   > >>  ]  z  1     
Autor Temat: Zmiana wielkosci strony w domyslnej drukarce za pomoca VBA.
Manaslu



Typ: neutral
Postów: 41
Zarejestrowany: Dec 2003
Zmiana wielkosci strony w domyslnej drukarce za pomoca VBA.

Hej,
czy ktos wie jak za pomoca VBA (Excel 97) dostac sie do domyslnej drukarki Windowsa i zmienic kilka parametrow (np wielkosc strony z A4 na inny format)?
Informacje o domyslnej drukarce udalo mi sie uzyskac uzywajac funkcji 'APIGetProfileString'.
Niestety nie udalo mi sie utworzyc obiektu drukarki tak by miec dostep do jego skladowych. Deklaracja :

Dim objPrinter As Printer

powoduje blad - zdaje sie ze jest to mozliwe w Excelu 2000.

Tak wiec sadze, ze konieczna tu bedzie jakas funkcja API. Pytanie tylko jaka ?

Z gory dziekuje za wszelkie wskazowki
Pozdrawiam

29-09-2004 22:53
Pokaż profil Manaslu  Wyślij email do Manaslu        2130338
Piotr T




Typ: neutral
Postów: 176
Zarejestrowany: May 2004

A mógłbyś wkleić ten kod wykorzystujący API do uzyskania informacji o drukarce


_____________________________________________
Visual Basic.NET - Mercedes dla programistów

30-09-2004 08:15
Pokaż profil Piotr T  Wyślij email do Piotr T   Odwiedź stronę Piotr T  
Manaslu



Typ: neutral
Postów: 41
Zarejestrowany: Dec 2003
Z mila checia.

Ponizszy kod nie jest zbyt elegancki. Z tego co sie orietuje w Excelu 2000 i wyzej mozna uzyc czegos takiego:

    Dim objPrinter As Printer

    For Each objPrinter In Printers
    Next objPrinter

co daje dostep do objPrinter. Ale jak to zrobic pod Excelem 97 ?

W kazdym razie oto moj przyklad:

Private Declare Function GetProfileString Lib "kernel32.dll" 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 GetDefaultPrinter() As String
    Dim strBuffer As String * 254
    Dim iRetValue As Long
    Dim strDefaultPrinterInfo As String


    iRetValue = GetProfileString("windows", "device", ",,,", strBuffer, 254)
    strDefaultPrinterInfo = Left(strBuffer, InStr(strBuffer, Chr(0)) - 1)
    GetDefaultPrinter = strDefaultPrinterInfo
End Function
Private Sub main()
    MsgBox " Domyslna drukarka to: " & GetDefaultPrinter
End Sub

Pozdrawiam

30-09-2004 11:28
Pokaż profil Manaslu  Wyślij email do Manaslu        2130338
Wszystkich odpowiedzi: 2 :: Maxymalnie na stronę: 20
Strona: [  << <   1   > >>  ]  z  1