Sub sample()
'変換表はこのブックの1シート目に用意されているものとする
Dim mySheet As Worksheet, rng As Range
Set mySheet = ThisWorkbook.Worksheets(1)
Set rng = mySheet.UsedRange.Columns(1)
'txtファイルはこのマクロと同じ場所にあるものとする
Dim fileName As String
fileName = Dir(ThisWorkbook.Path & "*.txt")
'ループ
Do While fileName <> ""
'読み込み(ファイルはすべてUTF-8であるものとする)
Dim buf, arr
buf = ADOFileLoad(ThisWorkbook.Path & "" & fileName)
'変換表に従い置換
Dim c As Range
For Each c In rng.Cells
buf = Replace(buf,"A"& c.Value &"B", "A"&c.Offset(, 1).Value &"B")
DoEvents
Next
'別名でtxt書き出し
ADOFileSave buf, ThisWorkbook.Path & "\New_" & fileName
'シートにも書き出し
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets.Add(After:=mySheet)
arr = Split(buf, vbNewLine)
ws.Cells.Resize(UBound(arr) + 1, 1).Value = WorksheetFunction.Transpose(arr)
'次へ
fileName = Dir()
Loop
で置き換えを行っているのですが
複数の条件に一致するセルを置き換えしたくて
buf = Replace(buf,"A"& c.Value &"B", "A"&c.Offset(, 1).Value &"B")を複数を作成すると
ws.Cells.Resize(UBound(arr) + 1, 1).Value = WorksheetFunction.Transpose(arr)で上書きしてしまいうまくいきません。
複数の条件で置き換えを行うにはどうしたらいいでしょうか
#コメント B
setenv Bを
#コメント シート1のA列の隣のセルの値
setenv シート1のA列の隣のセルの値に置換する
のようなイメージです
あなたの回答
tips
プレビュー