Excel VBA質問箱 IV

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

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


8726 / 13644 ツリー ←次へ | 前へ→

【31506】サブフォルダ内検索 MS−07B 05/11/24(木) 0:17 質問[未読]
【31507】Re:サブフォルダ内検索 Kein 05/11/24(木) 0:59 発言[未読]
【31508】Re:サブフォルダ内検索 Kein 05/11/24(木) 1:05 発言[未読]
【31542】Re:サブフォルダ内検索 MS−07B 05/11/25(金) 0:00 お礼[未読]

【31506】サブフォルダ内検索
質問  MS−07B  - 05/11/24(木) 0:17 -

引用なし
パスワード
   いつもお世話になっております。
初心者なんで、いつもつまずいております。

今回も質問させていただきます。すみません
------------------------------------------------------------------
'#####変数宣言#####
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

【31507】Re:サブフォルダ内検索
発言  Kein  - 05/11/24(木) 0:59 -

引用なし
パスワード
   ↓こんな方法で、サブフォルダー内の全ファイルを抽出できます。
http://park7.wakwak.com/~efc21/cgi-bin/wwwlng.cgi?print+200507/05070170.txt
あとは拡張子が「xls」であるものをフィルタリングすれば、エクセルブックのパスを
取得出来ると思います。

【31508】Re:サブフォルダ内検索
発言  Kein  - 05/11/24(木) 1:05 -

引用なし
パスワード
   http://park7.wakwak.com/~efc21/cgi-bin/wwwlng.cgi?print+200510/05100364.txt
↑こちらの方が参考になりそうですね。テキストファイルに出力するのでなく、直接
セルに入力していく StdOut を使った点と、拡張子によるフィルタリングをする点で、
前にレスしたリンク先より内容が近い、と思えるからです。

【31542】Re:サブフォルダ内検索
お礼  MS−07B  - 05/11/25(金) 0:00 -

引用なし
パスワード
   ▼Kein さん:
>http://park7.wakwak.com/~efc21/cgi-bin/wwwlng.cgi?print+200510/05100364.txt
>↑こちらの方が参考になりそうですね。テキストファイルに出力するのでなく、直接
>セルに入力していく StdOut を使った点と、拡張子によるフィルタリングをする点で、
>前にレスしたリンク先より内容が近い、と思えるからです。

どうも有難うございます。
返信が遅くなりました。すみません。

サブフォルダ名を取得後そのファイルを順次
開いて処理という形でやっていくのかな?
と理解したのですがw
頑張ってみます。

有難うございました(>_<)

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