Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(指定なし : 指定なし)
テキストファイルをエクセルリストにより一括置換え
投稿日時: 19/02/01 14:09:15
投稿者: yuyuma

対象のファイル:テキストファイル 以下 A.txt
テキストファイルを開くソフト:ワード
置換るためのリスト:エクセルで作成 A列の内容をB列の内容に置換る
  
以下のVBAで 対象のテキストファイルを開き、一括置換えできるところまでは
動作確認しました。
実行ボタンを作成し、対象のテキストファイルを指定してから開く動作を追加
しようとしましたが、うまくいきません。
取得したファイル名を対象にするにはどのようにすればよいのかご教示いただけますと
助かります。よろしくお願いします。
  
Sub okikae()
   
 Const wdReplaceAll = 2
   Dim word As Object
   Dim doc As Object
   Dim r As Long
 
   Set word = CreateObject("Word.Application")
   word.Visible = True
    Set doc = word.Documents.Open("C:\A.txt")
      r = 1
       Do While Range("A" & r).Value <> ""
         With doc.Content.Find
      .ClearFormatting
      .Replacement.ClearFormatting
      .Text = Range("A" & r).Value
      .Replacement.Text = Range("B" & r).Value
      .Execute Replace:=wdReplaceAll
     End With
    r = r + 1
    Loop
 End Sub

回答
投稿日時: 19/02/01 15:34:55
投稿者: WinArrow
投稿者のウェブサイトに移動

なぜ、WORDを使うのでしょうか?
 
Excelのシートに読み込めば・・・・

回答
投稿日時: 19/02/01 15:54:34
投稿者: WinArrow
投稿者のウェブサイトに移動

シートに読み込んだテキストデータは、
A列に読み込まれるので
 
↓のような置換コードになります。
 
    Range("A1").CurrentRegion.Replace What:="HHH", Replacement:="ZZZ"
 
1行で済みます。

投稿日時: 19/02/01 16:02:20
投稿者: yuyuma

WinArrow 様
 
お世話になります。以前助けていただいたことがあります。
エクセルで完結すればよい様なものなのですが、置換えた後、
事情があり、そのまま上書き保存してテキストファイルとして保存したいので
読み込まず置換えを考えています。

回答
投稿日時: 19/02/01 16:55:32
投稿者: WinArrow
投稿者のウェブサイトに移動

yuyuma さんの引用:
WinArrow 様
 
お世話になります。以前助けていただいたことがあります。
エクセルで完結すればよい様なものなのですが、置換えた後、
事情があり、そのまま上書き保存してテキストファイルとして保存したいので
読み込まず置換えを考えています。

 
文章が矛盾しています。
 
>読み込まず置換えを考えています。
は、意味不明・・・・読み込まずに置換する・・・ちと、むずかしいよね?
 
Excelでも、テキストファイルに出力できますよ
 

投稿日時: 19/02/01 16:57:33
投稿者: yuyuma

ありがとうございます。
再確認してみます。