Newsgroup: it.comp.os.win.software
Titolo: Office e stampante.........

E' possibile assegnare una stampante ad office diversa da quella predefinita
?
Cambiando la stampante nella fase di stampa è tutto ok, ma alla riapertura
di Word (Excel) la stampante di default è di nuovo quella predefinita.
Io avrei bisogno di assegnarne un' altra in automatico. Mi potete aiutare )
Grazie
--
Lucio

> Lucio C.:

Potresti farlo con poche righe di codice Visual Basic. Lo
mastichi? Spero di si`, perche' se non ne sai proprio nulla
diventa un po' lungo dettagliare tutti i passaggi. E se non lo
si fa c'e` il rischio che non si venga a capo di nulla.
Quindi... serve la tua collaborazione. Facci sapere.
--
Ciao.
Maurizio
--------
?SPQR(C)
 X




> > > E' possibile assegnare una stampante ad office diversa
da quella predefinita ?
Ok, cominciamo. E cominciamo con Word.
Apri Word e chiudi l'eventuale documento vuoto. Passa a Visual
Basic. Dovrebbe esserci un unico progetto di nome "Normal".
Inserisci un modulo al quale assegnerai il nome:
    MAuto
quindi copia all'interno di tale modulo il codice seguente:
Option Explicit
Public Const WordPrinter As String = "*"
Public ActivePrinter     As String
Private App              As Normal.CApplication
Public Sub AutoExec()
  ActivePrinter = Word.Application.ActivePrinter
  Set App = New Normal.CApplication
End Sub
Sostituisci l'asterisco nel valore di WordPrinter con l'esatto
nome della stampante che vuoi sia attiva in Word, cosi` come
e` scritto nella finestra "Stampa".
Inserisci un modulo di classe al quale assegnerai il nome
    CApplication
quindi copia all'interno di tale modulo di classe il codice
seguente:
Option Explicit
Public WithEvents Application As Word.Application
Private Sub Application_WindowActivate( _
  ByVal Doc As Document, ByVal Wn As Window)
  Me.Application.ActivePrinter = Normal.MAuto.WordPrinter
End Sub
Private Sub Application_WindowDeactivate( _
  ByVal Doc As Document, ByVal Wn As Window)
  Me.Application.ActivePrinter = Normal.MAuto.ActivePrinter
End Sub
Private Sub Class_Initialize()
  Set Application = Word.Application
End Sub
Private Sub Class_Terminate()
  Set Application = Nothing
End Sub
Compila, salva e chiudi Word. Imposta come predefinita la
stampante che vuoi (ovviamente diversa da quella che vuoi sia
assegnata a word) e fai qualche prova.
Il codice qui sopra e` totalmente privo di fronzoli per
permettere di cogliere l'essenza della procedura.
In caso di blocco di word o di windows dovrai accertarti,
prima di (ri)aprire word, che la stampante predefinita sia
diversa da quella che verra` assegnata a word.
Facci sapere se funziona;)


Alcune precisazioni: In office 2000  ( PC di casa ) posso "passare" al
Visual Basic.
In Office 97 ( Pc di un amico che mi ha chiesto se sapevo risolvere il
problema ) funziona allo stesso modo ? ( Scusa ma non ho avuto mai sotto
mano la versione 97 ).
In office 95 ( PC del mio ufficio dal quale ti scrivo ) non so proprio come
fare.
Cmq proverò con office 2000 e ti farò sapere. Ti sarei grato se potessi
confermarmi che anche in Office 97 si può "passare" al Visual Basic.
Ciao e grazie
--
Lucio


 Cmq proverò con office 2000 e ti farò sapere. Ti sarei grato
se potessi confermarmi che anche in Office 97 si può "passare"
al Visual Basic.
Sempre con Alt+F11. Almeno per quanto riguarda Word ed Excel.


Ho testato il codice con Office 2000. Tutto bene. Ho anche tentato di
sistemarlo per Excel ( presunzione ), ma non ci sono riuscito. Ti rompo
ancora le scatole,quindi, chiedendoti se mi puoi mandare anche il codice
relativo ad Excel, dopo di che affronterň Office 97 ( IL PC del mio amico č
a 70 km. e preferirei fare solo una "trasferta").
Grazie ancora.
--
Lucio
"Maurizio Borrelli" <Please...@To.Newsgroup> ha scritto nel messaggio
news:8q37hm$sla$3...@nslave1.tin.it...


 Ho testato il codice con Office 2000. Tutto bene. Ho anche
tentato di sistemarlo per Excel ( presunzione ), ma non ci
sono riuscito. Ti rompo ancora le scatole,quindi, chiedendoti
se mi puoi mandare anche il codice relativo ad Excel, dopo di
che affronterò Office 97 ( IL PC del mio amico è a 70 km. e
preferirei fare solo una "trasferta").
Oops!... Scusami. Avevo messo da parte questo post per
rispondere con calma poi... me ne sono dimenticato. Cerchero`
di rimediare al piu` presto.





Scusami se ti disturbo. Hai per caso trovato qualche minuto per il mio
probl. ( Excel e stampante ) ?
Grazie per l'attenzione.
PS: e scusa per la rottura di ba..e  ; -)
