アプリ版:「スタンプのみでお礼する」機能のリリースについて

初心者なのですが、ネットの情報を駆使してTxtファイルの中身を一部指定した内容に書き換え、新しいファイルとして保存するマクロの作成をいたしました。

そこで、さらに出力するファイル名をセル(Sheet1のA1)に入力した内容で保存したいと考えております。
その場合、下記のVBAはどのように書き換えれば良いでしょうか・・・?
何卒ご教授の程よろしくお願い申し上げます。


Sub TextReplace()
Const FPath As String = "C:\"
Const FNameIn As String = "Text.txt"
Const FNameOut As String = "任意の名前"
Const MaxRow As Long = 10000 '最大行数

Dim ff As Integer
Dim buf As String
Dim dstr(MaxRow) As String
Dim tsrch() As Variant
Dim lp As Long, cnt As Long
tsrch = Worksheets("Sheet1").Range("C3:D6").Value

ff = FreeFile()
'ファイル読込
Open FPath & FNameIn For Input As #ff
cnt = 0
Do Until EOF(ff)
Line Input #ff, buf
'テキスト置換
For lp = 1 To UBound(tsrch)
buf = Replace(buf, tsrch(lp, 1), tsrch(lp, 2))
Next lp
cnt = cnt + 1
dstr(cnt) = buf
Loop
Close
'ファイル書き出し
Open FPath & FNameOut For Output As #ff
For lp = 1 To cnt
Print #ff, dstr(lp)
Next lp
Close

MsgBox "Complete!!"

End Sub

A 回答 (2件)

<要件>


Sheet1のA1に入っている文字列を参照し、
出力するテキストファイルの名称として使う。

<変更箇所>

[削除]
Const FNameIn As String = "Text.txt"

[挿入] ff = FreeFile()の上の行あたり
Dim FNameOut As String
FNameOut = ThisWorkbook.Sheets("Sheet1").Range("A1").Value
    • good
    • 0

No.2 です。


間違えました。
正しくは次の通りです。

[削除]
Const FNameOut As String = "任意の名前"

[挿入] ff = FreeFile()の上の行あたり
Dim FNameOut As String
FNameOut = ThisWorkbook.Sheets("Sheet1").Range("A1").Value
    • good
    • 0
この回答へのお礼

ご丁寧にありがとうございました。
おかげで問題なく動作するようになりました。

お礼日時:2020/12/10 12:19

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!