HERBERS Excel-Forum - die Beispiele

Thema: Dynamische Generierung von Programmteilen

Home

Gruppe

VBE

Problem

Während der Laufzeit werden Programmteile generiert und gelöscht.

Lösung
Den nachstehenden Code in ein Standardmodul eingeben, einer Schaltfläche zuweisen und starten.
StandardModule: Modul1

Sub SplitArray()
   Dim mdl As Object
   Dim arr(1 To 2, 1 To 12)
   Dim iCounter As Integer, iAct As Integer
   Dim sCode As String
   Application.VBE.MainWindow.Visible = False
   For iCounter = 1 To 12
      arr(1, iCounter) = iCounter
      arr(2, iCounter) = Format(DateSerial(1, iCounter, 1), "mmmm")
   Next iCounter
   sCode = "Sub NewArrays(arrWhole)" & vbLf
   sCode = sCode & "   Dim iAct as Integer" & vbLf
   For iCounter = 1 To UBound(arr, 1)
      sCode = sCode & "   Dim arr" & iCounter & "(1 to " & _
         UBound(arr, 2) & ")" & vbLf
      sCode = sCode & "   For iAct = 1 to " & _
         UBound(arr, 2) & vbLf
      sCode = sCode & "      arr" & iCounter & "(iAct) = arrWhole(" & _
         iCounter & ", iAct)" & vbLf
      sCode = sCode & "   Next iAct" & vbLf
      sCode = sCode & "   For iAct = 1 to " & _
         UBound(arr, 2) & vbLf
      sCode = sCode & _
         "      MsgBox ""Datenfeld "" & iAct & "" aus Array arr" & _
         iCounter & ": "" & arr" & iCounter & "(iAct)" & vbLf
      sCode = sCode & "   Next iAct" & vbLf
   Next iCounter
   sCode = sCode & "End Sub" & vbLf & vbLf
   Set mdl = ThisWorkbook.VBProject.VBComponents.Add(1)
   mdl.CodeModule.AddFromString sCode
   Call Aufruf(arr)
   ThisWorkbook.VBProject.VBComponents.Remove mdl
End Sub

Sub Aufruf(arrAct As Variant)
   Call NewArrays(arrAct)
End Sub

Beiträge aus dem Excel-Forum zu den Themen VBE und Prozedur

Ereignisprozedur suche Taschenrechner in VBE
Ereignisprozedur f. Multipage-Reiter Prozedur in neues Blatt/Tabelle einfügen
Makros zulassen mit VBA Prozedur Beschriftungstext einer Schaltfläche an Prozedur
Text aus Zelle als Bedingung in Prozedur Zeitgesteuerte Prozedur funktioniert nicht...
Prozedur zu groß Fehler bei Abhandlung der Prozedur
Eine große Prozedur in zwei teilen aber wie? VBA - Prozedur
Prozedur verkürzen oder teilen? VBA bringt Prozedur-Fehler
VBE Optionen setzen Name der laufenden Prozedur
Prozeduren vor dem Speichern aus Tabelle löschen Prozedurnamen auslesen
Prozedurname aus Variable Erweiterung der VBE
Prozedur fuer mehrere Arbeitsblaetter wiederholen Simple Prozedur - Wo ist der Fehler?
vbeplus Variablen in anderer Prozedur aufrufen
Prozedur bei Worksheet_Activate tut nicht Worksheet_Activate() Prozedur
Teil einer rekursiven Prozedur auslagern Ereignisprozeduren automatisiert VBE
Automatisierungsfehler Codename VBE Verwendung Addin vbeplusde
lange Bearbeitungszeit einer Prozedur Prozedur macht was sie will...
Fehler beim Kompilieren - Außerhalb Prozedur.... prozedur aufrufen
Frage Archivbeitrag - Schreibschutz Benutzerrechte Prozedur in prozedur
Prozedur bei Klick auf Grafik auslösen Fehler in Codeprozedur
Prozedur zu lang Außerhalb einer Prozedur ungültig
Prozedur bei Wechsel Hintergrundfarbe ausführen Bei erster Makroausführung öffnet sich VBE im Debu
VBE-Kontextmenü "Definition" Prozedur dauert zu lange
Objekt an Prozedur übergeben Prozedur automatisch ausführen
2 Prozeduren ausführen Listbox breite einstellen in einer prozedur
aktuellen Prozedurnamen für Fehler-Log automatisch