• 締切済み

ファイル操作

ExcelVBAでテキストファイルを読み込み、特定の文字を置換したいと思っています。 Openステートメントでinputを使うと読み込みで、outputを使うと書き込みなのは、わかります。 ただ更新の仕方がわからないのです。 よろしかったら教えてください。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

#1でおっしゃることは、大切なことです。 置換については、変数にレコードの文字列を入れたものを対象に (1)置換対象文字を見つけなければなりません Instr関数で見つけます (2)見つかった位置の前までの文字列をMid関数で切り出します (3)置換対象文字列は捨てます (4)それ以後の文字列をMid関数で切り出します (5)(2)+置換後の文字列+(4)を&で連接します. 置換文字列が複数ありえるときは、(2)+置換後の文字列。 残りの文字列に対し(1)、(2)、(5)を繰り返す。 (6)新しいレコードとして書き出します。Print #ステートメントを使う。 (7)レコード内に置換文字列が2つ以上あるときは、INSTRの第1引数のスタート位置を変えて、順次尺取虫のように、置換文字列が見つからなくなるまで、上記を繰り返します。ただし(4)は最後だけ行うになります。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

固定長レコードでない一般的な不定長のテキストファイルの場合 そのファイル自身をいきなり更新ということはできません。 入力ファイルを読込、更新して出力ファイルに書き出し 終了後入力ファイルを削除、出力ファイルを入力ファイル名に名前の変更のような手順になると思います。