XL97: Come creare gestori eventi livello di applicazione

Traduzione articoli Traduzione articoli
Identificativo articolo: 158244 - Visualizza i prodotti a cui si riferisce l?articolo.
Questo articolo č stato archiviato. L?articolo, quindi, viene offerto ?cosė come č? e non verrā pių aggiornato.
Espandi tutto | Chiudi tutto

In questa pagina

Sommario

Se si desidera che un gestore eventi specifico per eseguire ogni volta che un determinato evento viene attivato, č possibile scrivere un gestore eventi per l'oggetto Application. I gestori eventi per l'oggetto Application sono globali, il che significa che, fino a quando Microsoft Excel č aperto, il gestore di evento verrā eseguito quando si verifica l'evento appropriato, indipendentemente da quale cartella č attiva quando si verifica l'evento.

In questo articolo viene descritto come creare un gestore eventi a livello di applicazione e viene fornito un esempio.

Informazioni

Per creare un gestore di eventi a livello di applicazione, č necessario utilizzare la procedura di base:
  • Dichiarare una variabile per l'oggetto Application utilizzando WithEvents la parola chiave. La parola chiave WithEvents, utilizzabile per creare una variabile oggetto che risponde agli eventi generati da un oggetto ActiveX (ad esempio l'oggetto Application). Nota: WithEvents č valido solo in un modulo di classe.

  • Creare la routine per l'evento di applicazione specifico. Ad esempio, č possibile creare una procedura per l'evento WindowResize, WorkbookOpen o SheetActivate dell'oggetto che č stata dichiarata tramite WithEvents.
  • Creare ed eseguire una routine che viene avviato il gestore eventi.
Nell'esempio seguente viene utilizzata la procedura per impostare un gestore eventi globale che visualizza una finestra di messaggio ogni volta che si ridimensiona una finestra della cartella di lavoro (l'evento al gestore eventi di generazione).

Creazione e il gestore eventi di avvio

  1. Aprire una nuova cartella di lavoro.
  2. Avviare l'editor di Visual Basic.
  3. Scegliere modulo di classe dal menu Inserisci.

    Questo verrā inserito un modulo denominato "< nome rubrica > - Class1 (codice)" nel progetto.
  4. Immettere la riga seguente di codice di Class1 il modulo (codice):
           Public WithEvents appevent As Application
    						
    parola chiave WithEvents la rende la variabile appevent disponibili nell'oggetto a discesa di Class1 finestra del modulo (codice).
  5. In Class1 la finestra del modulo (codice), fare clic su dell'oggetto trascinare - verso il basso e quindi su appevent nell'elenco.
  6. In Class1 la finestra del modulo (codice), fare clic sulla procedura di rilascio - verso il basso e quindi su WindowResize nell'elenco.

    Il seguente verrā aggiunta a Class1 il foglio del modulo (codice):
        Private Sub appevent_WindowResize(ByVal Wb As Excel.Workbook, _
            ByVal Wn As Excel.Window)
    
        End Sub
    						
  7. Aggiungere codice a Class1 il foglio di modulo (codice) in modo che appaia come indicato di seguito:
           Public WithEvents appevent As Application
    
    
           Private Sub appevent_WindowResize(ByVal Wb As Excel.Workbook, _
               ByVal Wn As Excel.Window)
    
               MsgBox "you resized a window"
    
           End Sub
    						
    successivo, č necessario creare un'istanza della classe e quindi impostare l'oggetto appevent dell'istanza di Class1 l'applicazione. Infatti, quando si dichiara una variabile WithEvents, in fase di progettazione, non esiste un oggetto associato. Una variabile WithEvents come qualsiasi altra variabile oggetto, č necessario creare un oggetto e assegnare un riferimento all'oggetto la variabile WithEvents.
  8. Scegliere modulo per inserire un modulo di tipo generale del progetto dal menu Inserisci.
  9. In questo foglio di modulo, specificare il codice riportato di seguito:
          Dim myobject As New Class1
    
          Sub Test()
              Set myobject.appevent = Application
          End Sub
    						
  10. Eseguire la macro "test". Č stato impostato solo il gestore eventi da eseguire ogni volta che č ridimensionare una finestra di cartella di lavoro in Microsoft Excel.
  11. Il menu file, scegliere "Chiudi e torna a Microsoft Excel".
  12. Ridimensionare una finestra di cartella di lavoro.
Verrā visualizzata una finestra di messaggio con "una finestra ridimensionata".

Disattivazione del gestore eventi

Se si chiude la cartella di lavoro che contiene il progetto precedente, il gestore di eventi livello di applicazione verrā disattivato. Per disattivare a livello di codice al gestore eventi, effettuare le seguenti operazioni:
  1. Avviare l'editor di Visual Basic.
  2. Nel codice macro immesso nel passaggio 9, modificare la macro per:
          Sub test()
              Set myobject.appevent = Nothing
          End Sub
    						
  3. Eseguire nuovamente la macro "test".
  4. Il menu file, scegliere "Chiudi e torna a Microsoft Excel".
  5. Ridimensionare una finestra di cartella di lavoro.
Non visualizzerā la finestra di messaggio.

Riferimenti

Per ulteriori informazioni sui moduli di classe, in Visual Basic Editor scegliere "Sommario e indice" dal menu?, fare clic sulla scheda indice, digitare il testo riportato di seguito
modulo di classe
e fare doppio clic sul testo selezionato per passare all'argomento "Modulo e modulo di classe comandi (Menu Inserisci)".

Proprietā

Identificativo articolo: 158244 - Ultima modifica: martedė 4 febbraio 2014 - Revisione: 1.2
Le informazioni in questo articolo si applicano a:
  • Microsoft Excel 97 Standard Edition
Chiavi: 
kbnosurvey kbarchive kbmt kbdtacode kbfaq kbhowto kbprogramming KB158244 KbMtit
Traduzione automatica articoli
Il presente articolo č stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non č sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, pių o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non č la sua. Microsoft non č responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 158244
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com