【Word VBA】WordのXMLデータを操作するWordマクロ

2017年11月9日

受託開発にてXMLデータを修正する必要がありました。

WordではXMLデータそのものを文字列として取得し、そのデータをまたWordに書き込めます。

そのメモです。具体的な処理はありません。

このマクロでできること

Wordを開いたままXMLデータを抜き出し、データを書き換えてそのXMLデータを元に戻します。

マクロの解説

XMLデータに対する処理は、以下の2つの方法があります。

  1. 新規のWordファイルにstrXMLの文字列を貼り付けて処理
  2. メモリ上でstrXMLの文字列を処理

1の場合は、strXMLに文字列を保存し直す際に、Wordファイル末尾のvbCRを除外する必要ありますのでご注意ください。

2の場合は、VBScriptの正規表現を使えば、おおよそのやりたい処理ができると思います。

VBScriptの正規表現例

マクロ

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Sub XMLを操作する()
 
 Dim strXML As String
 
 '-------------------------------------------
 'XMLのデータをstrXML(String変数)に取得
 '-------------------------------------------
 strXML = ActiveDocument.Range.WordOpenXML
 
 '-------------------------------------------
 'strXMLに対して処理
 '-------------------------------------------
 
 
 '-------------------------------------------
 'strXML のデータを現在文書に挿入
 '-------------------------------------------
 ActiveDocument.Range.InsertXML strXML
 
End Sub

-コード
-

S