Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 11全般 : Excel 2016)
フォルダ内に保管されている複数のファイルの拡張子を一括削除する
投稿日時: 22/10/31 11:48:45
投稿者: さぶ

いつもお世話になっております。
  
首記の件ですが、
下記のコードにより
指定フォルダに保管されているファイル名を
一括表示させています。
(A2セルにパスを記載してその中にあるファイル名
を表示させるもの)
 
実行にあたり、拡張子も表示されるのですが、
これをすべて表示させない、もしくは削除させるといったコードを
追加していますがなかなかうまくいきません・・・
質問ばかりで申し訳なく・・・
ご教授いただければと思います。よろしくお願いいたします。
  
-------------------------------------------------------------------
 
Public Sub MainProc()
    Dim sht As Worksheet
    Dim fso As Object
    Dim f As Object
    Dim nowRow As Long
     
    '@参照するシートを変数に格納する
    Set sht = ThisWorkbook.Sheets("ファイル名一覧取得")
     
    'Aセルの値をクリアする
    sht.Range("A5:E10000").ClearContents
     
    'BFileSystemObjectを変数に格納する
    Set fso = CreateObject("Scripting.FileSystemObject")
      
    nowRow = 4
     
    For Each f In fso.GetFolder(sht.Range("A2")).Files
     
        'C現在行を次の行に変更する
        nowRow = nowRow + 1
     
        'DNOをセットする
        sht.Range("A" & nowRow) = nowRow - 4
     
        'Eファイル名をセットする
        sht.Range("B" & nowRow) = f.Name
         
        'F日付時刻をセットする
        sht.Range("C" & nowRow) = f.DateLastModified
         
        'G種類をセットする
        sht.Range("D" & nowRow) = f.Type
         
        'Hサイズをセットする
        sht.Range("E" & nowRow) = f.Size
  
    Next
         
    'IFileSystemObjectをクリアする
    Set fso = Nothing
     
    MsgBox "完了"
End Sub

回答
投稿日時: 22/10/31 12:09:50
投稿者: taitani
投稿者のウェブサイトに移動

以下でよいと思います。
※ 解釈が違ってたらすみません。
’---------------------
'Eファイル名をセットする
sht.Range("B" & nowRow) = Replace(f.Name, "." & fso.GetExtensionName(f.Name), "")
’---------------------

投稿日時: 22/10/31 12:41:05
投稿者: さぶ

早速試してみました。
 
ばっちりでした!!!!
拡張子のみ削除されたファイルがすべて綺麗に
残りました!!!!
 
ご教授ありがとうございます。
これで一歩前進することができました。