Ciao,
tempo fa avevo fatto qualcosa che potrebbe aiutarti, va solo un po' adattato.
Non è VBA ma VBS quindi non gira all'interno delle applicazioni office ma nel browser IE (solo in quello).
Per cominciare a provarlo crea in una cartella qualsiasi un file di nome Estrattore.txt, mettici dentro il codice che ti passo più avanti, salvalo e rinominalo come Estrattore.htm.
Fatto questo aprilo con IE (se è il browser predefinito basta cliccarci sopra altrimenti "apri con..."), rispondi di sì agli avvisi di sicurezza e poi scrivi, nella casellina che ti apparirà, il nome di un file che non esiste per esempio lista.txt.
Alla fine dell'elaborazione nella cartella troverai il nuovo file lista.txt contenente il nome di tutti i file presenti nella cartella.
Questo era il funzionamento originale che si può facilmente adattare alla tua esigenza specifica, vidi se ci riesci da solo, altrimenti chiedi pure, comunque più giù ti spiego a grandi linee come funziona:
codice:
<html>
<head>
<title>estrattore di nomi file</title>
</head>
<body>
<script language="vbscript">
'----------------------------------------------------------------------------------------------
Option Explicit
Dim Nome_File, Nome_Cartella, FSO, ActualPath, FDN, FOL, Elemento, NomeInput
ActualPath = Replace(Left(Replace(Document.Url, "file://", ""), InStrRev(Replace(Document.Url, "file://", ""), "\")), "%20", " ")
NomeInput = InputBox("Nome del file in cui scrivere la lista dei file di questa cartella")
Nome_File = ActualPath & NomeInput
Nome_Cartella = Left(ActualPath, (Len(ActualPath) - 1))
Set FSO = CreateObject("Scripting.FileSystemObject")
Set FDN = FSO.CreateTextFile(Nome_File,true)
Set FOL = FSO.GetFolder(Nome_Cartella)
For Each Elemento in FOL.files
If Elemento.name <> NomeInput AND _
Elemento.name <> "Estrattore.htm" AND _
Elemento.name <> "Thumbs.db" _
Then
FDN.Writeline Elemento.name
End If
Next
Set FOL = Nothing
FDN.Close
Set FDN = Nothing
MsgBox "FINITO"
'----------------------------------------------------------------------------------------------
</script>
</body>
</html>
La option explicit obbliga a definire nella dim tutte le variabili che si usano (sostanzialmente serve a evitare di sbagliare a digitare i nomi delle variabili).
Nella dim devi mettere tutte le variabili che userai.
ActualPath viene impostato col percorso della cartella in cui si trova lo script perché è di quella cartella che si andrà a fare la lista dei file. Nel funzionamento originale infatti era previsto che il file estrattore.htm venisse inserito nella cartella di cui ottenere la lista, nel tuo caso, se ti è più comodo puoi impostarlo in modo fisso con la cartella in cui cercare.
NomeInput riceve il nome "lista.txt" digitato nella input box.
Su Nome_File e Nome_Cartella credo non ci sia nulla da dire.
Le tre istruzioni seguenti creano le istanze degli oggetti necessari ad accedere alla cartella.
C'è poi il ciclo For Each che esplora tutta la cartella e scrive nel file il nome dei file trovati escludendo però i nomi Estrattore.htm e Thumbs.db (un file di sistema presente in xp nelle cartelle di immagini).
E poi operazioni di chiusura ed msgbox. Tutto qui.
Non credo che sia difficile adattarlo, si tratterà di impostare i percorsi in modo fisso, di richiedere con inputbox la stringa da cercare e poco altro.
Ciao