|
いつもお世話になっております。
初心者なんで、いつもつまずいております。
今回も質問させていただきます。すみません
------------------------------------------------------------------
'#####変数宣言#####
Private SH As Worksheet 'シート名
Private FSO As Object 'ファイルシステムオブジェクト
Private ShellApp As Object 'ダイアログ表示
Private FName As Object '選択されたフォルダー名
Private FL As Object 'フォルダー
Private FolderName As String 'フォルダー名
Private FileName As String 'ファイル名
Private strWk As String 'シェイプ内文字列
Private strFind As String '置換対象文字列
Private strRep As String '置換後文字列
''************************************************************************
''*ファイル指定後、検索文字列の指定
''************************************************************************
Sub File_open()
'#####変数宣言#####
Dim MSG As Integer 'メッセージの戻り値
' '#####エラー時処理続行#####
' On Error Resume Next
'#####ファイルオープン#####
Set FSO = CreateObject("scripting.filesystemobject")
Set ShellApp = CreateObject("Shell.Application")
Set FName = ShellApp.BrowseForFolder(0, "フォルダ選択", 1) 'フォルダ選択ダイアログの表示
FolderName = FName.Items.Item.Path
'#####キャンセル時終了#####
If FName = "" Then End
'#####サブフォルダ検索#####
MSG = MsgBox("サブフォルダ内も検索しますか?", vbOKCancel)
If MSG = 1 Then
'↓ココから下の処理
'#####対象フォルダー表示#####
FileName = Dir(FolderName & "\*.xls", vbNormal)
MsgBox FolderName, vbOKOnly, "一括置換処理対象フォルダー"
'#####検索する文字の指定#####
strFind = InputBox("置換前の文字列を入力してください。", "一括置換")
If strFind = "" Then End 'キャンセルの時は処理を抜ける
strRep = InputBox("置換後の文字列を入力してください。", "一括置換")
If strRep = "" Then End 'キャンセルの時は処理を抜ける
MsgBox "置換前 『" & strFind & "』を" & vbCrLf & "置換後 『" & strRep & "』に置換します。"
End Sub
-----------------------------------------------
今、指定されたフォルダ内のすべてのEXCELファイルすべてのシートにある
文字列、シェープ内文字列を検索するtoolを作っております。
現行ではサブフォルダ内が検索できないので、
検索できるようにしたいのですが、
単純に
"Application.FileSearch.SearchSubFolders = True"
でよいのでしょうか?
これはサブフォルダの中のフォルダも検索されるのでしょうか?
自分ではうまく動いてもらえませんでした。
どなたか詳しく教えていただける方
宜しくお願いいたしますm(__)m
|
|