Вот пример кода, который проходит по колонке: значение ячеек в колонке интерпретируются как имена файлов, если файла с таким именем нет, то на его место копируется некоторый эталонный файл
Const referenceFile As String = "c:\no_photo.jpg"
Sub CreateMissingFiles()
Dim fileCell As Range
Dim fileName As String
Dim fso As FileSystemObject
Dim counter As Integer
counter = 0
Set fso = New FileSystemObject
For Each fileCell In Range("A1", "A10")
On Error Resume Next
fileName = fileCell.Value
If fileName = "" Then GoTo Skip
If Not fso.FileExists(fileName) Then
Call fso.CopyFile(referenceFile, fileName, False)
counter = counter + 1
End If
Skip:
Next
MsgBox "done, created " & counter & " files"
End Sub
Константа referenceFile содержит путь к эталонному файлу.
То, какие ячейки пробегать, задаётся в выражении Range("A1", "A10"). Замени на Range("A1", "A10000") и будет почти то, что нужно. Для того, чтобы заработало, надо в редакторе Visual Basic пойти в Tools->References и поставить галочку напротив Microsoft Dcripting Runtime