Hallo Reinhard,
ich habe mir im Zuge einer Anfrage im Excel-Brett (
/t/swf-in-excel/4897769/4
) den nachfolgenden Code gebastelt.Der Code, gestartet mit „tt“ teilt eine Datei, hier eine swf,
in der Arrayvariablen Block() in Häppchen von 64000 Bytes auf.Der Sinn des Ganzen soll sein, egal Excel-Vba oder VB, daß die
Bytes der Datei in Modulen „gespeichert“ werden.
Wieso zum Teufel in einem Modul ? Warum legst du sie nicht in einer Klasse ab?
Angenommen die swf-datei wurde in 9 Blöcke aufgeteilt. Jetzt
würde ich gerne dafür zur Laufzeit des Codes 9 Module
erstellen, in denen jeweils 64000 Bytes der Datei
„gespeichert“ sind.
Sodele das schreit wieder nach einer Klasse.
Erstelle doch einfach eine Klasse, wo du den Text speicherst. Dann erstelle halt eine Collection und füge dort die Member hinzu. Hierbei spielt es keine Rolle wieviele es sind.
Das Modul 1 sollte dann ca. so aussehen:
Sub Prog1()
Dim Txt
Txt="…"
Txt=Txt & „…“
Txt=Txt & „…“
Txt=Txt & „…“
Txt=Txt & „…“
usw. bis in Txt die Bytes 1 bis 64000 der ehemaligen swf-Datei
drin sind.
Das verstehe ich nicht wirklich 
Aber schau mal… du erstellst eine Klasse „Data“ Dort gibt es eine Eigenschaft txt(String) Dieser kann den String speichern. Dann hast du dort eine Sub / Function implementiert die dir den Text bearbeitet.
Dann erstellst du eine Klasse wo du eine Collection bildest. Dieser Klasse fügst du die Function Add, Die Eigenschaft Count und Item. Vielleicht auch noch eine Methode Remove zum entfernen des Member aus der Collection hinzu und das war es schon.
Du traegst dann einfach in der Collection den Text ein. So oft wie du magst. Mittels der Item Eigenschaft kannst du gezielt auf einen Member zugreifen und ergo dort dann den speziellen Text auslesen oder auch eine Methode ausführen. Das hört ziemlich schwer an. Reinhard ist es aber nicht. Das Demo zeigt dir das 
Danach soll eine Datei Neu.swf im Appendmodus geöffnet werden
und im Append-Modus der Inhalt von „Txt“ angehängt werden.
Das könnte man in der Collection Klasse dann realisieren.
Wenn diese 9 Module erstellt sind brauche ich noch Code, der
die Prozeduren der 9 Module nacheinander aufruft, so daß am
Ende eine datei Neu.swf erstellt ist, ie ich dann im
Flash-Player ablaufen lassen kann.
Siehst und du musst so nur die Collection durchlaufen und dann in jeder Klasse den Txt abrufen oder die Methode ( je nachdem was du magst)
Falls das jetzt unverständlich war *gg*, bitte nachfragen.
Konkrete Fragen kann ich auch stellen.
a) Ich habe X Module mit den Namen mdl1 bix mdlX. Jedes Modul
hat eine Prozedur mit dem Namen ProgX.
Diese Prozedur könntest du in die Klasse legen und dann einfach ueber die Collection mittels der Item Eigenschaft darauf zugreifen 
Wie sieht jetzt der Code aus, der nacheinander Prozedur Prog1
bis ProgX ausführt?
Einfach die Collection durchlaufen und die Methode aufrufen!
wobei das X auch erst zur Laufzeit bekannt ist.
Siehst und das ist das schoene bei einer Collection. Das interessiert uns doch garnicht *grins*
So aber nun mal ein kleines Demo
'Klasse Data
'Hier werden die Daten gespeichert und modifiziert. Sprich hier
'muessen saemtliche subs rein :wink:
Option Explicit
Private MyText As String
Public Property Get Txt() As String
Txt = MyText
End Property
Public Property Let Txt(ByVal vNewValue As String)
MyText = vNewValue
End Property
Public Sub ProgX()
'hier dein source dann, sollte ja 9 mal der selbe sein \*gg\*
End Sub
Private Sub Class\_Initialize()
MyText = ""
End Sub
'Klasse ColData
'Die Klasse die die Collection erstellt
Option Explicit
Private mCol As Collection
Private Sub Class\_Initialize()
Set mCol = New Collection
End Sub
Private Sub Class\_Terminate()
Set mCol = Nothing
End Sub
Function Add(Txt As String) As Data
Dim ObjMember As Data
Set ObjMember = New Data
With ObjMember
.Txt = Txt
End With
mCol.Add ObjMember
Set Add = ObjMember
Set ObjMember = Nothing
End Function
Public Property Get Item(ByVal Index As Long) As Data
Set Item = mCol(Index)
End Property
Public Property Get Count() As Long
Count = mCol.Count
End Property
Allein mit diesen 2 Klassen kommst du an das Ziel. Du musst nur deinen Source in der sub ProgX schreiben 
Zugreifen koenntest du nun via
Option Explicit
Private Sub Form\_Load()
Dim x As ColData
Dim I As Long
Set x = New ColData
x.Add ("Reinhard")
x.Add ("Rainer")
x.Add ("Alex")
For I = 1 To x.Count 'Collection ist nicht Null basierend!!!
x.Item(I).ProgX 'Wir rufen jedesmal die Sub Progx auf
'x.Item(I).Txt 'Wenn wir die Daten in txt brauchen :wink:
Next
End Sub
MfG Alex
PS: Willkommen in der Welt der OOP 