Word (VBA)

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

 
(指定なし : 指定なし)
notepadで開けて編集
投稿日時: 17/04/18 13:28:02
投稿者: nac

ノートパッドで開けて編集する方法はありませんか?
無理であれば、全文を選択する方法でもかまいません。
よろしくお願いします。
 
Sub Sample1()
'=============
Dim パス As String
Dim rng As Range
'=============
パス = ThisDocument.Path
Shell "notepad " & パス & "\app.xml", vbNormalFocus
 
'=============
'ここから以下の部分の方法が質問です。
Set rng = ActiveDocument.Range(0, 0)
With rng.Find
  .Text = "あいう"
  .Replacement.Text = "●"
  .MatchWildcards = True
  .Execute Replace:=wdReplaceAll
End With
 
'=============
End Sub

回答
投稿日時: 17/04/18 15:53:59
投稿者: sk

引用:
ノートパッドで開けて編集する方法はありませんか?

ノートパッドを開くことは出来ても、
ノートパッドを操作することは出来ません。
( SendKeys による操作は非推奨)
 
Word によって XML ファイルをテキストファイルとして開き、
任意の文字列を別の文字列に一括置換するコードを実行なされば
充分ではないかと思いますが。
 
( XML ファイルの文字コードが Unicode である場合)
----------------------------------------------------------------
Sub Sample2()
 
  Dim strFilePath As String
  Dim doc As Word.Document
  Dim rng As Word.Range
   
  strFilePath = ThisDocument.Path & "\app.xml"
    
  'Unicode テキストファイルを開く
  Set doc = Documents.Open(FileName:=strFilePath, _
                           Format:=wdOpenFormatUnicodeText, _
                           NoEncodingDialog:=True)
    
  Set rng = doc.Range(0, 0)
  With rng.Find
    .Text = "あいう"
    .Replacement.Text = "●"
    .MatchWildcards = True
    .Execute Replace:=wdReplaceAll
  End With
    
  Set rng = Nothing
 
End Sub
----------------------------------------------------------------

投稿日時: 17/04/18 17:07:21
投稿者: nac

skさん
 
ワードでテキストから開けることはすでにやっていました。
タグのようなものが文字にならずに残ってしまうので、ノートパッドで編集することを考えました。
 
しかしながら、skさんのunicodeとして開ける方法であれば、タグも文字として変換されていました。
おかげさまで無事解決です。
ありがとうございます。