Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


46315 / 76732 ←次へ | 前へ→

【35391】Re:ファイルの一覧を作りたい
回答  Kein  - 06/3/2(木) 20:10 -

引用なし
パスワード
   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
    
これをシートモジュールに入れます。ただし、もともと拡張子の無いファイルには
対応しませんので、ご注意ください。

3 hits

【35386】ファイルの一覧を作りたい 奄美の初心者 06/3/2(木) 18:54 質問
【35387】Re:ファイルの一覧を作りたい 奄美の初心者 06/3/2(木) 18:56 発言
【35392】Re:ファイルの一覧を作りたい Kein 06/3/2(木) 20:15 回答
【35391】Re:ファイルの一覧を作りたい Kein 06/3/2(木) 20:10 回答
【35393】Re:ファイルの一覧を作りたい 奄美の初心者 06/3/2(木) 20:24 お礼
【35394】Re:ファイルの一覧を作りたい Kein 06/3/2(木) 20:40 発言
【35399】Re:ファイルの一覧を作りたい 奄美の初心者 06/3/2(木) 22:20 お礼

46315 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free