Faire un explorateur (Browser) en VBS

Si vous avez besoin de choisir un fichier pour un traitement en VBS, voici un code qui vous permettra d’ouvrir une fenêtre d’exploration pour récupérer le nom du fichier dans une variable mémoire.

Le code est commenté pour que vous puissiez y apporter vos modifications

'--------------------------------------------------------------------------------------
'@Script: browser.vbs 
'@author: Olivier Benquet 2019
'@usage : 
'Pour choisir un Fichier via une fenêtre d'exportation
'--------------------------------------------------------------------------------------
Set objFSO = CreateObject("Scripting.FileSystemObject")
'Fonction explorateurvbs le résultat de sortie est la variable filebrowser=
Function explorateurvbs(InitDir,Filtre,Titre) 
	Set explorer = CreateObject("WScript.Shell").Exec( _
	"mshta.exe ""about:<object id=d classid=clsid:3050f4e1-98b5-11cf-bb82-00aa00bdce0b></object>" & _
	"<script>moveTo(0,-9999);eval(new ActiveXObject('Scripting.FileSystemObject')" & _
	".GetStandardStream(0).Read(" & _
	Len(InitDir)+Len(Filtre)+Len(Titre)+41&"));function window.onload(){var p=/[^\0]*/;new ActiveXObject('Scripting.FileSystemObject')" & _ 
	".GetStandardStream(1).Write(p.exec(d.object.openfiledlg(initDir,null,filtre,titre)));close();}</script><hta:application showintaskbar=no />""") 
	explorer.StdIn.Write "var initDir='" & InitDir & "';var filtre='" & Filtre & "';var titre='" & Titre & "';" 
	explorateurvbs = explorer.StdOut.ReadAll 
End Function
result=MsgBox ("Programme VBS pour récupérer un nom de fichier " & VbCrLf &_
				"avec son chemin" & VbCrLf & VbCrLf &_  
				"Oui = Pour Lancer l'explorateur" & VbCrLf & VbCrLf &_ 
				"Non = arrète le VBS", vbYesNo+vbInformation , "Explorateur VBS")
If result=6 Then    'si réponse oui
	'Répertoire par défaut où va s'ouvrir l'explorateur - vous pouvez utiliser des jocker en remplaçant par exemple :
	' *.* par *.pdf pour n'afficher que le PDF ou par essai*.* pour n'afficher que les fichiers commençant par essai
	InitDir = "c:\temp\*.*"
	'Filtres rapide paramétrable - vous pouvez aussi enlever cette ligne (supprime le choix d'un filtre)
	Filtre = "All File (*.*)|*.*|pdf files (*.pdf)|*.pdf|csv files (*.csv)|*.csv|txt files (*.txt)|*.txt|log files (*.log)|*.log|"
	'Titre de la fenetre d'exploration
	Titre = "Choisissez votre Fichier" 
	'lancement de l'explorateur et recupération du nom de fichier
	filebrowser = explorateurvbs(Replace(InitDir,"\","\\"),Filtre ,Titre) 
	'affichage de la variable contenant le fichier séléctionné 
  		affiche = MsgBox ("Vous avez sélectionné :" & VbCrLf & VbCrLf & VbCrLf & _   
		filebrowser & VbCrLf, vbOKOnly+vbInformation, "Explorateur VBS")
End if		
Set objFSO = Nothing
Wscript.Quit