W tym artykule utworzymy makro, aby wstawić nowy moduł do skoroszytu programu Excel.
Przed uruchomieniem makra musimy określić typ i nazwę modułu.
Jak widać na zrzucie ekranu, w skoroszycie mamy tylko jeden moduł. W tym przykładzie do skoroszytu dodamy moduł klasy.
Wyjaśnienie logiczne
W tym artykule stworzyliśmy dwa makra, „CreateNewModule” i „CallingProcedure”.
Makro „CreateNewModule” służy do dodawania nowego modułu, w zależności od wprowadzonego wejścia.
Makro „CallingProcedure” służy do wprowadzenia danych wejściowych i wywołania modułu głównego.
Wyjaśnienie kodu
Ustaw ModuleComponent = Wbook.VBProject.VBComponents.Add(ModuleTypeIndex)
Powyższy kod służy do dodania nowego modułu w projekcie VBA.
ModuleComponent.Name = Nowa nazwaModułu
Powyższy kod służy do zmiany nazwy wstawianego komponentu.
ModuleTypeConst = Cint(Zakres("D12").Value)
Powyższy kod służy do pobierania wartości całkowitej z komórki D12.
NazwaModułu = Arkusz1.Pole Tekstowe2.Wartość
Powyższy kod służy do pobierania wartości z pola tekstowego.
Proszę postępować zgodnie z poniższym kodem!
Option Explicit Sub CreateNewModule(ByVal ModuleTypeIndex As Integer, ByVal NewModuleName As String) 'Deklarowanie zmiennych Dim ModuleComponent As VBComponent Dim WBook As Workbook 'Tworzenie obiektu aktywnego skoroszytu Set WBook = ActiveWorkbook Set ModuleComponent = Nic przy błędzie Wznów dalej 'Dodawanie nowego modułu zestawu ModuleComponent = WBook.VBProject.VBComponents.Add(ModuleTypeIndex) If Not ModuleComponent Is Nothing Then 'Zmienianie nazwy nowego modułu ModuleComponent.Name = NewModuleName End If On Error GoTo 0 Set ModuleComponent = Nothing End Sub Sub CallingProcedure() 'Zadeklaruj zmienne Dim ModuleTypeConst As Integer Dim ModuleName As String 'Pobieranie wartości nazwy i typu modułu ModuleTypeConst = CInt(Range("D12").Value) ModuleName = Sheet1.TextBox2.Value 'Wywołanie CreateNewModule CreateNewModule ModuleTypeConst, ModuleName End Sub
Jeśli podobał Ci się ten blog, podziel się nim ze znajomymi na Facebooku. Możesz również śledzić nas na Twitterze i Facebooku.
Chcielibyśmy usłyszeć od Ciebie, daj nam znać, jak możemy poprawić naszą pracę i uczynić ją lepszą dla Ciebie. Napisz do nas na stronie e-mail