title image


Smiley Re: Neuer VBA-Code: Alle Module aus Ordner importieren
Hab das mal eben auch ein wenig getestet (nach kleiner Anpassung für Word 8: Visible-Argument der Documents.Add-Methode).

Generell können bei dieser Retour-Version natürlich Namenskonflikte auftreten - spätetstens bei ThisDocument, was einen Crash nicht ausschließt (Import ist immer kritischer als Export).

Vorschlag:

Die Datei zunächst prüfen auf "Attribute VB_Name...". Dies würde auch halbwegs sonst. ungültige ausschließen.

Hierzu zunächst (anstatt if ... "frx"):

If fsGetModulName(strDateiAusSchleife) "" Then ...



Private Function fsGetModulName(sDatei As String) As String

If Dir(sDatei) = "" Then Exit Function

If Dir(sDatei, vbDirectory) "" Then Exit Function

Dim iFile As Integer

Dim sZeile As String

' Error-Handling mal außen vor lassen

iFile = FreeFile

Open sDatei For Input As #iFile

Do While Not EOF(iFile)

Line Input #iFile, sZeile

If Left(sZeile, 21) = "Attribute VB_Name = " & Chr(34) Then

fsGetModulName = Mid(sZeile, 22)

fsGetModulName = Left(fsGetModulName, Len(fsGetModulName) - 1)

Exit Do

End If

Loop

Close #iFile

End Function



Als weiteres dann:

Alle (erfolgreich) verarbeiteten Module in einem dynamischen Array merken und die Übergabe von fsGetModulName dagegen abgleichen.

Prinzipiell könnte dies auch die Funktion selbst machen und dann - bei Vorhandensein eben auch nichts liefern.



Ein zusätzliches Problem liegt darin, dass dir() nicht unbedingt den kompletten Pfad liefert (in der Zeile "strDateiAusSchleife = Dir(strQuellVerzeichnis & "\*" & Dateierweiterung). Dieser muss ggf. dazu gesetzt werden. Event. wäre auch ein FileSearch eine Alternative.



Ansonsten:

V.a. für die - wohl relevantere - Export-Routine wäre es natürlich am komfortabelsten, wenn die zu bearbeitenden *.do? über einen Dialog bestimmbar wären. Ruhig auch normal.dot + ggf. geöffnete in einer MultiSelect-ListBox anbieten + Erweiterungs-Möglichkeit via Dialogs oder API. Es könnte dann auch gleich gecheckt werden, ob überhaupt Module vorhanden sind bzw. diese könnten als Unterauswahl angeboten werden. Über einen solchen Dialog wären dann natürlich auch andere Dinge wie Ablagepfad einstellbar.



Weiterhin viel Spaß (auch) beim Entwickeln

Uli

geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: