Thema Datum  Von Nutzer Rating
Antwort
14.04.2022 09:02:08 Sleide
Solved
Blau Word Datei öffnen, Makro ausführen, Datei schließen und das ganze für einen Ordner mit übe
14.04.2022 13:33:54 Gast59434
NotSolved
14.04.2022 14:11:04 Sleide
NotSolved
14.04.2022 17:04:18 Gast96461
NotSolved
25.10.2022 11:40:42 Martina Soppke
NotSolved

Ansicht des Beitrags:
Von:
Gast59434
Datum:
14.04.2022 13:33:54
Views:
607
Rating: Antwort:
  Ja
Thema:
Word Datei öffnen, Makro ausführen, Datei schließen und das ganze für einen Ordner mit übe

Die Aufgabe nacheinander Dateien zu bearbeiten ist nichts ungewöhnliches; dafür gibts dutzend Beispiele im Internet/ in Foren zu finden.

Man könnte also leicht auf den Trichter kommen, dass du uns hier dreist ins Gesicht lügst ohne Rot zu werden...


Allgemein kann man das folgendermaßen angehen:
(andere Herangehensweisen sind möglich)

Option Explicit

Public Sub DoSomethingWithFilesInFolder()
  
  Dim dlg As FileDialog
  'der Nutzer soll ein Verzeichnis per Dialog auswählen
  Set dlg = Application.FileDialog(msoFileDialogFolderPicker)
  
  If CBool(dlg.Show()) = False Then
  'der Nutzer hat den Dialog abgebrochen
    Exit Sub
  End If
  
  Dim doc               As Word.Document
  Dim objFSO            As Object 'Scripting.FileSystemObject
  Dim objFolder         As Object 'Scripting.Folder
  Dim objFile           As Object 'Scripting.File
  Dim strFilename       As String
  Dim strFileExtension  As String
  
  Set objFSO = CreateObject("Scripting.FileSystemObject")
  Set objFolder = objFSO.GetFolder(dlg.SelectedItems(1))
  
  'Ausgabe des ausgewählten Verzeichnisses in den Direktbereich
  Debug.Print vbNewLine; "["; objFolder.Path; "]"
  
  For Each objFile In objFolder.Files
    
    'der vollständige Dateiname (Verzeichnispfad + Dateiname)
    strFilename = objFSO.BuildPath(objFolder.Path, objFile.Name)
    'die Dateierweiterung (z.B. txt, pdf, doc, docx, docm)
    strFileExtension = LCase$(objFSO.GetExtensionName(objFile.Name))
    
    'Ausgabe des Dateinamens in den Direktbereich
    Debug.Print Tab(4); "* "; objFile.Name
    
    Select Case strFileExtension
      
      Case "txt"
        '...
        
      Case "doc", "docx" 'Word Dokument
        
        'Word Dokument öffnen
        Set doc = Documents.Open(strFilename, ReadOnly:=True)
        
        '... etwas mit dem geöffneten Dokument tun ...
        
        'Word Dokument wieder schließen
        Call doc.Close(SaveChanges:=False)
        
      Case "docm" 'Word Dokument mit Makros
        '...
        
    End Select
    
  Next
  
  
  
  Set objFolder = Nothing
  Set objFile = Nothing
  Set objFSO = Nothing
  
End Sub

Das Makro kann man auszuführen, ohne ein Dokument geöffnet zu haben, indem man es innerhalb der Dokumentenvorlage Normal.dotm innerhalb eines Modules platziert.

Rechtsklick auf "Normal" -> Einfügen -> Modul

... dann das Makro oben in das soeben erstellte Modul einfügen.

 

Makro ausführen per Tastenkombination [ALT] + [F8]

oder über den Menüband-Reiter "Entwicklertools" -> Code: Makros
(der Reiter ist per Standard nicht sichtbar und muss einmalig eingeblendet werden; Anleitung dazu ist im Internet zu finden)

 

Grüße


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
14.04.2022 09:02:08 Sleide
Solved
Blau Word Datei öffnen, Makro ausführen, Datei schließen und das ganze für einen Ordner mit übe
14.04.2022 13:33:54 Gast59434
NotSolved
14.04.2022 14:11:04 Sleide
NotSolved
14.04.2022 17:04:18 Gast96461
NotSolved
25.10.2022 11:40:42 Martina Soppke
NotSolved