| 
    
     |  | FAQですね。FileSearchはバグりやすいそうなので、FSOを使うことをお勧めします。 
 Sub Test_GetFile()
 Dim FSO As Object, SFols As Object
 Dim SFl As Object, F As Object
 Dim i As Long
 Const MyFol As String = "C:\a"
 
 Columns(1).ClearContents
 Set FSO = CreateObject("Scripting.FileSystemObject")
 Set SFol = FSO.GetFolder(MyFol).SubFolders
 For Each SFl In SFol
 If SFl.Files.Count > 0 Then
 For Each F In SFl.Files
 i = i + 1
 Cells(i, 1).Value = SFl.Name & "\" & F.Name
 Next
 End If
 Next
 Set SFol = Nothing: Set FSO = Nothing
 End Sub
 
 >一覧を作った後、ファイル名の変更も
 入力されたセル範囲(A列)から、目的のファイル名のセルを選んでダブルクリック
 することで、そのファイル名を変更できるようにしたら良いと思います。
 
 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, _
 Cancel As Boolean)
 Dim x As Long
 Dim Ph As String, Bs As String, NewN As String
 Const MyF As String = "C:\a\" '←末尾に\を入れること
 
 On Error Resume Next
 If Intersect(Target, Range("A:A").SpecialCells(2, 2)) _
 Is Nothing Then Exit Sub
 If Err.Number <> 0 Then Exit Sub: Cancel = True
 With Target
 If Mid$(StrReverse(.Value), 4, 1) <> "." Then Exit Sub
 x = InStrRev(.Value, "\")
 If x = 0 Then Exit Sub
 Ph = Left$(.Value, x)
 Bs = Right$(.Value, 4)
 End With
 NewN = InputBox("変更するファイル名を" & _
 " 拡張子なしで入力して下さい")
 If NewN = "" Then Exit Sub
 Name MyF & Target.Value As MyF & Ph & NewN & Bs
 Target.Value = Ph & NewN & Bs
 End Sub
 
 これをシートモジュールに入れます。ただし、もともと拡張子の無いファイルには
 対応しませんので、ご注意ください。
 
 
 |  |