|
こんにちは。かみちゃん です。
>Aというフォルダの中にある数十個のエクセルファイルを一つずつ開いて
>文字列の置換を行っています。
>もっと手際のよい方法があるのではないかと自動記録でマクロを作って
>操作をしてみましたが、自動記録ではどうしてもファイルを開いて
>置換が終わればファイルを閉じて・・・という操作は必要になります。
ファイルを開いては閉じてという方法以外に何かないか?ということでしょうか?
マクロが書かれたブックと同じフォルダに対象ブックを入れておく方法であれば、
以下のような感じでできます。
置換処理は、入っていませんので、ご自身で入れてみてください。
Sub Sample()
Dim ws As Worksheet
Dim wb As Workbook
Dim strPath As String
Dim strFileName As String
Set ws = ActiveSheet
'ブックが格納されているフォルダ(マクロブックと同じフォルダの場合)
strPath = ThisWorkbook.Path
strFileName = Dir(ThisWorkbook.Path & "\*.xls")
Do Until strFileName = ""
If strFileName <> ThisWorkbook.Name Then
'ブックを開く
Set wb = Workbooks.Open(strPath & "\" & strFileName)
'開いたブックをのすべてのシートをひとつずつアクティブにする
For Each ws In Worksheets
ws.Activate
'〜アクティブシートに対する各処理〜
Next
'開いたブックを上書き保存する
wb.Save
'開いたブックを上書き保存しない
'wb.Saved = True
'開いたブックを閉じる
wb.Close
End If
strFileName = Dir()
Loop
MsgBox "終了しました"
End Sub
|
|