| 
    
     |  | >標準モジュールに >'========================================================
 >Sub 置換()
 > Dim ws As Worksheet
 > Dim wb As Workbook
 > Dim strFileName As String
 > Dim nm As Variant
 > 'ブックが格納されているフォルダ(マクロブックと同じフォルダの場合)
 > If fold_open("D:\miwa\【QZ】\DB", "*.xls", False) = 0 Then
 >   strFileName = fold_get
 >   Do Until strFileName = ""
 >    nm = Split(strFileName, "\")
 >    If nm(UBound(nm)) <> ThisWorkbook.Name Then
 >    'ブックを開く
 >      Set wb = Workbooks.Open(strFileName)
 >
 >    '開いたブックをのすべてのシートをひとつずつアクティブにする
 >      For Each ws In Worksheets
 >       ws.Activate
 >       Cells.Replace What:="2007年", Replacement:="翌年", LookAt:=xlPart, _
 >              SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
 >              ReplaceFormat:=False
 >       Cells.Replace What:="2006年", Replacement:="当年", LookAt:=xlPart, _
 >              SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
 >              ReplaceFormat:=False
 >       Next
 >      '開いたブックを上書き保存する
 >      wb.Save
 >      '開いたブックを上書き保存しない
 >      'wb.Saved = True
 >      '開いたブックを閉じる
 >      wb.Close
 >      End If
 >     strFileName = fold_get
 >     Loop
 >   End If
 >  Call fold_close
 >
 >End Sub
 >
 >
 >別の標準モジュールに以前このサイトのご質問で使った・・・、
 >
 >'=================================================================
 >Private f_cnt As Long
 >Private f_path() As String
 >Private f_idx As Long
 >'====================================================================
 >Function fold_open(ByVal stDir As String, ByVal f_file As String, ByVal 捜索階層) As Long
 >'指定されたパスを捜索開始パスとして、指定されたファイルを捜索します
 >'尚、ファイル名の大文字・小文字は区別しません
 >'input  : stDir-----捜索開始パス
 >'     f_file----捜索ファイル名
 >'     捜索階層---False-----開始パスから全ての階層を捜索する
 >'          数値(>0)-開始パスから指定された階層のフォルダを捜索する(1の場合は、開始パスのみ)
 >'output : fold_open 0--------条件に合ったファイルが1つ以上見つかった
 >'           1--------条件に合ったファイルは見つからない
 >'           その他---以上終了(エラーコード)
 >  On Error Resume Next
 >  Dim fso As Object
 >  Dim f_fld As Object
 >  fold_open = 0
 >  Erase f_path()
 >  Set fso = CreateObject("Scripting.FileSystemObject")
 >  Set f_fld = fso.GetFolder(stDir)
 >  If Err.Number <> 0 Then
 >   fold_open = Err.Number
 >  Else
 >   f_cnt = 0
 >   Call fold_search(f_fld, f_file, 捜索階層)
 >   If f_cnt <= 0 Then
 >     fold_open = 1
 >   Else
 >     f_idx = 1
 >     End If
 >   End If
 >  Set fso = Nothing
 >  Set f_fld = Nothing
 >End Function
 >'========================================================================
 >Sub fold_search(ByVal f_fld As Object, ByVal f_file As String, ByVal 捜索階層)
 >  Dim sfld As Object
 >  Dim fl As Object
 >  Dim ret As Boolean
 >  For Each fl In f_fld.Files
 >   If UCase(fl.Name) Like UCase(f_file) Then
 >     ReDim Preserve f_path(1 To f_cnt + 1)
 >     f_path(f_cnt + 1) = fl.Path
 >     f_cnt = f_cnt + 1
 >     End If
 >   Next fl
 >  If VarType(捜索階層) = vbBoolean Then
 >   ret = True
 >  Else
 >   If 捜索階層 - 1 > 0 Then
 >     捜索階層 = 捜索階層 - 1
 >     ret = True
 >   Else
 ret = false
 >     End If
 >   End If
 >  If ret = True Then
 >   For Each sfld In f_fld.SubFolders
 >     Call fold_search(sfld, f_file, 捜索階層)
 >     Next
 >   End If
 >End Sub
 >'======================================================================
 >Function fold_get() As String
 >'fold_openが0だった場合、順次見つかったファイルのフルパスを取り出す
 >'output: fold_get-----条件に合ったファイルのフルパス。空白の場合は、データの終わり
 >  If f_idx > UBound(f_path()) Then
 >   fold_get = ""
 >  Else
 >   fold_get = f_path(f_idx)
 >   f_idx = f_idx + 1
 >   End If
 >End Function
 >'========================================================================
 >Sub fold_close()
 >'ファイル捜索のクローズ処理
 >  Erase f_path
 >  f_idx = 0
 >  f_cnt = 0
 >End Sub
 
 |  |