こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

ExcelでXMLっぽいファイルの編集をしたい

ExcelでXMLもどきの編集をしたいと考えています。

XMLもどきのファイルの内容は以下のようになっています。

 <rule parameter1="みかん" parameter2="とまと" parameter3="あずき" />
 <rule parameter1="りんご" parameter3="だいず" parameter4="わかめ" />
 <rule parameter1="もも" parameter2="きゅうり" parameter5="ミルク" />

これらの情報の中から、" " 内の文字列を抽出して、パラメータ毎に
分類して以下のように整理しようとしています。

 parameter1 parameter2 parameter3 parameter4 parameter5
 みかん とまと あずき
 りんご だいず わかめ
 もも きゅうり ミルク

関数やマクロを利用して、これらの作業を簡単に行う方法はないでしょうか?
お知恵をお貸しください。

投稿日時 - 2008-05-16 01:10:24

QNo.4025579

困ってます

質問者が選んだベストアンサー

こんにちは。

ANo.1 さんの紹介されている XSL 変換機能を提供しているソフトウェアと Excel を組み合わせて、XML ファイルの更新運用をデザインされてはいかがでしょうか。

XSL 変換機能を提供しているソフトウェア例

・XMLEDITOR .NET

参考URL:http://www.xmleditor.jp/

投稿日時 - 2008-05-17 22:20:41

ANo.3

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

昨日から正規表現にはまっていますので、その線で回答いたします。
Sub test()
Dim regEX As Variant
Dim Matches As Variant
Dim match As Variant
Dim matchString As String
Dim targetString As String
Dim subMatch As Object
Dim i As Long

targetString = readTextFile("C:\Documents and Settings\?????\My Documents\hoge.txt")
matchString = "(parameter\d)=""(\S*)"""
Set regEX = CreateObject("VBScript.RegExp")
regEX.MultiLine = True
regEX.Pattern = matchString
regEX.ignorecase = True
regEX.Global = True
Set Matches = regEX.Execute(targetString)
i = 1
For Each match In Matches
If match.submatches.Count > 0 Then
ActiveSheet.Cells(i, 1).Value = match.submatches.Item(0)
ActiveSheet.Cells(i, 2).Value = match.submatches.Item(1)
i = i + 1
End If
Next match
Set Matches = Nothing
Set regEX = Nothing
End Sub

Private Function readTextFile(fileName As String) As String
Dim FSO As Object
Dim buf As String

Set FSO = CreateObject("Scripting.FileSystemObject")
With FSO.getfile(fileName).OpenAsTextStream
buf = .ReadAll
readTextFile = buf
.Close
End With
Set FSO = Nothing
End Function

処理結果
....................A................B
1........parameter1..........みかん
2........parameter2..........とまと
3........parameter3..........あずき
4........parameter1..........りんご
5........parameter3..........だいず
6........parameter4..........わかめ
7........parameter1..........もも
8........parameter2..........きゅうり
9........parameter5..........ミルク
ご質問の形とは異なりますが、後はお好きな様に料理して下さい。
中味が知りたければ、VBA 正規表現 で検索して下さい。

投稿日時 - 2008-05-16 22:23:15

ANo.1

xsltを使ってcsv的なテキストを吐き出してエクセルで読み込んだら良いんじゃない?

http://www.infoteria.com/jp/contents/xml-data/REC-xslt-19991116-jpn.htm
http://www.google.co.jp/search?hl=ja&lr=lang_ja&q=xslt%20%E5%85%A5%E9%96%80

投稿日時 - 2008-05-16 03:57:29

あなたにオススメの質問