Via macro een bestand openen in Excel
Met macro’s kan je haast op zichzelf werkende programma’s creëeren. ALs je dit doet, kom je uiteindelijk ooit aan de eis dat een gebruiker een willekeurig bestand kan openen. In plaats van dat je dan hardcoded een bestandsnaam hebt of dat je moet gaan zoeken in voorgedefinieerde mappen, kan je eisen dat de gebruiker op de klassieke manier een bestand gaat selecteren van zodra de macro start.
Sub OpenOneFile() Dim fn As Variant fn = Application.GetOpenFilename("Excel-files,*.xls", 1, "Select One File To Open", , False) If TypeName(fn) = "Boolean" Then Exit Sub Workbooks.Open fn End Sub
Dit is de Sub die je nodig hebt. Een woordje uitleg:
Dim fn As Variant
Hierin plaatsen we de filename die de gebruiker selecteert. We weten niet of een gebruiker wel een bestand zal selecteren dus kunnen we er ook niet vanuit gaan dat de GetOpenFilename-procedure een bestandsnaam teruggeeft. Daarom gebruiken we Variant omdat er ook een boolean in kan zitten als de gebruiker geen bestand selecteerde.
fn = Application.GetOpenFilename("Excel-files,*.xls", 1, "Select One File To Open", , False)
Laat de gebruiker een bestand openen en plaats het resultaat in fn.
If TypeName(fn) = "Boolean" Then Exit Sub
ALs blijkt dat fn een boolean is, dan is er geen bestand geselecteerd. We gaan dus simpelweg uit de Sub. Niet echt de beste error-handling maar dit moet je dan zelf maar aanpassen aan je wensen. Iets in een log schrijven, de Sub herstarten, … alles is mogelijk.
Workbooks.Open fnUiteindelijk laten we de gekozen bestandsnaam openen.
Op zich een zeer simpel stukje code die iedereen kan begrijpen en die zeer makkelijk toegevoegd kan worden aan een macro.
- Geplaatst op 18/08/2010 door Jeroen Heymans
- Geplaatst in VBA Excel, Visual Basic for Applications
- 3,397 views
- Reageren?