2012-10-18 8 views

Odpowiedz

10

Moduł jest zbiorem podobnych funkcji i podprocedur, zgrupowanych zwykle pod względem ich funkcjonalności.

W podprogramie/funkcji modułu Prywatny: Funkcje i podprocedury są dostępne tylko w tym module. Publiczny: Można uzyskać do nich bezpośredni dostęp z dowolnego miejsca. (Kolejny moduł, inne makro itp.) Powszechną praktyką jest przechowywanie funkcji narzędziowych w modułach.

Option Private Module, co sprawia, że ​​moduł sam prywatny może być dodany do góry dowolnego modułu standardowego, ale nie jest dozwolona na module obiektu, jak ThisWorkbook czy Arkusz1 itp


ThisWorkbook jest prywatny moduł obiektu Workbook. Na przykład Workbook_Open(), Workbook_Close() rutynowe, znajdują się w tym module. (Workbook Object Reference)


Podobnie Arkusz1, Arkusz2 to prywatne moduły poszczególnych arkuszy. W nich wstawisz funkcje specyficzne dla tego arkusza. Worksheet_Activate, Worksheet_Deactivate, Workbook_SheetChange są domyślne zdarzenia przewidziane dla Ciebie, dzięki czemu można je obsługiwać, w ramach odpowiednich prywatnych blachy modułów. (Worksheet Object Reference)

Jak @Daniel Kucharz powiedział w komentarzach, a ThisWorkbook i moduły arkuszu nie są dostępne do bezpośredniego wykorzystania jako subName() lub functionName() zewnętrznego modułu, jest nadal możliwe, aby połączyć je za pomocą ThisWorkbook.subName() lub ThisWorkbook.functionName()


Moduł klasy jest najbliżej można uzyskać OOP w VBA. Mają konstruktory, destruktory i mogą być tworzone w postaci obiektów klasowych.

+0

+1 good details –

+0

Kiedy powiedziałem "prywatny moduł", nie miałem na myśli, że jego funkcje i metody byłyby niedostępne z zewnątrz. Tylko, że ten moduł należy do obiektu WorkSheet lub Workbook. Dostępność jest ustawiona dla metod i podprogramów tylko przy użyciu Public/Private. –

+0

Wygrywasz, mój komentarz jest nieprzydatny i usuwam go ... a wkrótce usunę ten. –

Powiązane problemy