- ベストアンサー
一括置換ソフトの探し方と使い方|階層の深いファイルの一括変換方法 | XPのSP2対応
- 階層の深いファイルに特定の文字列を一括置換するソフトをお探しですか?本記事では、フォルダごとに違う文字列を置換できる便利なツールや方法をご紹介します。
- 階層の深いファイルの一括置換は、手作業では時間がかかります。しかし、専用のファイル一括置換ソフトを使用することで、簡単に効率的に置換作業を行うことができます。
- また、XPのSP2に対応したソフトもご紹介します。過去ログや検索エンジンの検索では見つけることができなかったかもしれませんが、本記事でお探しのソフトを見つけることができるかもしれません。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
デスクトップ版です '■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ FileExt = "index.html" '←名前を指定してください(半角小文字) myWORD1 = "ダイエット" '■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ Set myWSH = CreateObject("WScript.Shell") myDSKTOP = myWSH.SpecialFolders("Desktop") Set myWSH = Nothing myWKFLD = Replace(WScript.ScriptFullName, WScript.ScriptName, "") Set mySh = CreateObject("Shell.Application") Set myPath = mySh.BrowseForFolder(&O0, "フォルダを選んでください", &H1 + &H10, myDSKTOP) If myPath Is Nothing Then WScript.Quit myFLD = myPath.Items.Item.Path Set mySh = Nothing : Set myPath = Nothing Set myFS = CreateObject("Scripting.FileSystemObject") For Each mySUBFLD In myFS.GetFolder(myFLD).SubFolders For Each myCSV In myFS.GetFolder(mySUBFLD).Files If LCase(myFS.GetFile(myCSV).Name) = FileExt Then myWORD2 = myWORD1 '■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ Select Case myFS.GetFolder(mySUBFLD).Name Case "001" : myWORD2 = "簡単ダイエット" Case "002" : myWORD2 = "ダイエット 日記" Case "003" : myWORD2 = "ダイエット レシピ" End Select '■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ If myWORD2 <> myWORD1 Then Set myRF = myFS.GetFile(myCSV).OpenAsTextStream(1) myTMP = myFS.GetTempName Set myWF = myFS.OpenTextFile(myWKFLD & "\" & myTMP, 8, True) myWF.WriteLine Replace(myRF.ReadAll, myWORD1, myWORD2) myRF.Close : myWF.Close myTIME = Year(Now) & "_" & Month(Now) & "_" & Day(Now) & "_" & Hour(Now) & "_" & Minute(Now) & "_" & Second(Now) 'myFS.GetFile(myCSV).Name = "元" & myTIME & myFS.GetFile(myCSV).Name myFS.GetFile(myCSV).Delete myFS.GetFile(myWKFLD & "\" & myTMP).Name = FileExt myFS.GetFile(myWKFLD & "\" & FileExt).Move mySUBFLD & "\" End If End If Next Next Set myRF = Nothing : Set myWF = Nothing : Set myFS = Nothing Msgbox "完了"
その他の回答 (1)
- anotherone
- ベストアンサー率54% (35/64)
001がAAAにというのは どういう関係で どのように指定しますか 置換の条件をおしえてください 階層は 1階層だけでしょうか 必ず1つでしょうか http://www.officetanaka.net/excel/vba/filesystemobject/folder.htm#Files http://www.officetanaka.net/excel/vba/filesystemobject/textstream.htm#WriteLine
補足
>001がAAAにというのは どういう関係で どのように指定しますか この説明であっているか分からないのですが 001フォルダの中のindex.html内にある「ダイエット」を全て「簡単ダイエット」に変換 002フォルダの中のindex.html内にある「ダイエット」を全て「ダイエット 日記」に変換 003フォルダの中のindex.html内にある「ダイエット」を全て「ダイエット レシピ」に変換 という感じで複数選択して一括で置換したいと思っております。 階層は1階層だけです。必ず1階層だけになります。 宜しくお願い致します。
お礼
迅速な対応ありがとうございます。 これでだいぶ作業が楽になりました。 私ひとりのために丁寧に対応して頂いて感謝しております。