2012-10-18 6 views

risposta

10

Un modulo è una raccolta di funzioni e sub-routine simili, raggruppate di solito in termini di funzionalità.

In una subroutine/funzione modulo, Private: Le funzioni e le routine secondarie sono disponibili solo all'interno di tale modulo. Pubblico: sono accessibili da qualsiasi luogo, direttamente. (Un altro modulo, diversa macro, ecc.) È prassi comune memorizzare le funzioni di utilità nei moduli.

Option Private Module, che rende il modulo stesso privato può essere aggiunto alla parte superiore di ogni modulo standard, ma non è consentito su un modulo di oggetto, come ThisWorkbook o Foglio1, ecc


ThisWorkbook è un modulo privato dell'oggetto Workbook. Ad esempio, Workbook_Open(), Workbook_Close() routine, risiedono in questo modulo. (Workbook Object Reference)


Analogamente, Sheet1, Sheet2 sono moduli private dei singoli fogli. In essi, inseriresti funzioni specifiche per quel foglio. Worksheet_Activate, Worksheet_Deactivate, Workbook_SheetChange sono eventi di default forniti all'utente, in modo da poterli gestire, nell'ambito delle rispettive foglio moduli private. (Worksheet Object Reference)

Come ha detto @ Daniel Cook nei commenti, mentre i moduli del foglio di lavoro ThisWorkbook e non sono disponibili per essere utilizzati direttamente come subName() o functionName() all'esterno del modulo, è ancora possibile chiamare utilizzando ThisWorkbook.subName() o ThisWorkbook.functionName()


Un modulo di classe è il più vicino possibile raggiungere OOP in VBA. Hanno costruttori, distruttori e possono essere istanziati per darti oggetti di classe.

+0

+1 buoni dettagli –

+0

Quando ho detto "modulo privato", non intendevo che le sue funzioni e metodi sarebbero inaccessibili dall'esterno. Solo che quel modulo appartiene all'oggetto WorkSheet o all'oggetto Workbook. L'accessibilità è impostata per metodi e subroutine usando solo Pubblico/Privato. –

+0

Hai vinto, il mio commento è inutile e lo sto rimuovendo ... e lo rimuoverò presto. –

Problemi correlati