Vba: werkbladen opslaan als csv-bestanden (met voorbeeld)
U kunt de volgende syntaxis in VBA gebruiken om elk blad van een werkmap op te slaan in een CSV-bestand:
Sub SaveCSV()
Dim Ws As Worksheet
Dim SaveDir As String
Dim CurrentWorkbook As String
Dim CurrentFormat As Long
CurrentWorkbook = ThisWorkbook.FullName
CurrentFormat = ThisWorkbook.FileFormat
'specify directory to save CSV files in
SaveDir = " C:\Users\bobbi\OneDrive\Desktop\ "
'save each sheet to individual CSV file
For Each Ws In Application.ActiveWorkbook.Worksheets
Ws.SaveAs SaveDir & Ws.Name, xlCSV
Next
Application.DisplayAlerts = False
ThisWorkbook.SaveAs Filename:=CurrentWorkbook, FileFormat:=CurrentFormat
Application.DisplayAlerts = True
End Sub
Deze specifieke macro slaat elk blad van de momenteel actieve werkmap op in een CSV-bestand.
CSV-bestanden worden opgeslagen in het pad dat is opgegeven in de SaveDir- variabele.
Opmerking : de regel Application.DisplayAlerts=False vertelt VBA om tijdelijk alle weergavewaarschuwingen in Excel uit te schakelen bij het opslaan van bestanden.
Het volgende voorbeeld laat zien hoe u deze syntaxis in de praktijk kunt gebruiken.
Voorbeeld: sla werkbladen op als CSV-bestanden met VBA
Stel dat we een Excel-werkmap hebben met twee bladen.
Het eerste blad heet player_stats en bevat statistieken over verschillende basketbalspelers:
Het tweede blad heet team_info en bevat informatie over verschillende basketbalteams:
Stel dat we elk van deze bladen als afzonderlijke CSV-bestanden op het bureaublad van onze computer willen opslaan.
We kunnen hiervoor de volgende macro maken:
Sub SaveCSV()
Dim Ws As Worksheet
Dim SaveDir As String
Dim CurrentWorkbook As String
Dim CurrentFormat As Long
CurrentWorkbook = ThisWorkbook.FullName
CurrentFormat = ThisWorkbook.FileFormat
'specify directory to save CSV files in
SaveDir = " C:\Users\bobbi\OneDrive\Desktop\ "
'save each sheet to individual CSV file
For Each Ws In Application.ActiveWorkbook.Worksheets
Ws.SaveAs SaveDir & Ws.Name, xlCSV
Next
Application.DisplayAlerts = False
ThisWorkbook.SaveAs Filename:=CurrentWorkbook, FileFormat:=CurrentFormat
Application.DisplayAlerts = True
End Sub
Zodra deze macro is uitgevoerd, wordt elk blad als CSV-bestand op ons bureaublad opgeslagen.
Als ik naar het bureaublad van mijn computer navigeer, kan ik elk van deze individuele CSV-bestanden zien met bestandsnamen die overeenkomen met de bladnamen:
Als ik het player_stats CSV-bestand open met Kladblok, kan ik zien dat de waarden in het Excel-bestand zijn opgeslagen als door komma’s gescheiden waarden:
Merk op dat we in dit voorbeeld twee bladen in onze werkmap konden opslaan als individuele CSV-bestanden, maar dezelfde macro werkt met een willekeurig aantal bladen.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in VBA kunt uitvoeren:
VBA: het aantal vellen in een werkmap tellen
VBA: gegevens uit een andere werkmap extraheren
VBA: nieuwe bladen toevoegen