
No.3ベストアンサー
- 回答日時:
#1です。
DOMの自習を致しました。MSXMLを使用したい場合、xmlsdk30.chmをダウンロードして、サンプルコードを眺めるのが良いと思います。VB & MSXMLの書籍も探しましたが、既に絶版になっているものが殆どで、Java Script用の書籍で我慢しました。
http://www.microsoft.com/downloads/details.aspx? …
もっと新しいバージョンのヘルプがあるかもしれませんが...
DOM/How Do I?/Program with DOM in Visual Basic
の中にある、stocks.xmlというファイルに対して、
<portfolio xmlns:dt="urn:schemas-microsoft-com:datatypes">
中略
<stock exchange="nyse">
<name>zacx corp</name>
<symbol>ZCXM</symbol>
<price dt:dt="number">28.875</price>
</stock>
</portfolio>
同じく、Query XML DOM Nodes (Visual Basic) を改造した、下記の様なコードで置換可能でした(zacx corp -> microsoft corp)
'MSXML3に参照設定
Private Sub test()
Dim oXMLDom As New DOMDocument30
oXMLDom.async = False
oXMLDom.validateOnParse = False
oXMLDom.resolveExternals = False
oXMLDom.preserveWhiteSpace = True
Dim oNode As IXMLDOMNode
If oXMLDom.Load(ThisWorkbook.Path + "\stocks.xml") = False Then
MsgBox "Failed to load xml data from file."
Exit Sub
End If
Set oNode = oXMLDom.selectSingleNode("//stock/name[.='zacx corp']")
If oNode Is Nothing Then
MsgBox "みつかりませんでした"
Exit Sub
Else
oNode.Text = "microsoft corp"
oXMLDom.Save ThisWorkbook.Path + "\saved.xml"
End If
End Sub
(以上、Copyright Microsoft)
No.4
- 回答日時:
MSXMLはMSXML6.0が安定最新版です。
直接XMLにアクセスしてXML関連の機能はたいてい揃っています。
参考URL:http://www.microsoft.com/downloads/details.aspx? …
No.2
- 回答日時:
質問者に2007が有るとして、
テンプレートであるファイルのシートを、開いている、「エクセルで記入したデータの有るシート」とは別空白シートに読み込み、対応するセルは同じものに関する記述だと思うので、空白セル以外のセルを逐一探し、テンプレートからのコピーしたシートのセルの値に置き換えて、最後に不必要なシートは除き(削除)、2007ファイル形式で保存しては。
これで不都合は出そうですか。
質問者は、プロ以外は誰もやらないと思う、先進的にXMLを扱ってみたいですか。
ーー
エクセルの現に有る、シートの仕組みや保存の仕組みを使わないで、1から直接テキスト的なファイルを触るのは労力がかかるのでは。
エクセルを使うと、上記のことぐらい、VBAも使えると思う。
また更新・修正データの入力をエクセルでさせるのでしょう。
確かにエクセルの保存ファイルフォーマットがブラックボックスだった以前と比べ、その知識は要らなくなっているのだろうが。
質問者はどれだけの技量か質問には書けないわけだが、XMLを扱った経験は相当有るのかな。
No.1
- 回答日時:
普通のテキストファイルとして(改行のないxmlの場合は丸ごと読み込んで)、文字列操作関数を使えばよいのではありませんか。
但し、xmlの文字コードがUTF-8等の場合には、ADODB.Streamで、一旦UTF-16に変換してから操作し、UTF-8に変換して保存するといった処置が必要になります。単純な置換や、ワイルドカードでの置換では不十分で、パターンマッチングによる置換を行いたい場合は、VBA regexpで検索していただくと、正規表現検索/置換の記事が沢山見つかります。MSXML.DOMを用いる方法も考えられますが、自分も勉強中でアドバイスはできません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フォントの色を保持したままセ...
-
各項目がダブルクォーテーショ...
-
Excel VBAでAA(BBB) → BBB.AA ...
-
秀丸エディタで、「-」や「ー」...
-
pythonに関する質問です
-
バッチファイルの処理が実際の...
-
VBA 置換文字がみつからない時
-
複数のパワーポイントファイル...
-
文字コードの%E3%80%とは何です...
-
CSVファイルの中で、「 , 」カ...
-
VBA 文字に半角が含まれて...
-
エクセルで数値を全角文字(カ...
-
住宅にカナを入力する際に丁目...
-
データにカンマが入ったCSVデー...
-
CString から LPCTSTRの型に変換
-
COBOL・全角判定
-
EXCELからCSVにすると余計なカ...
-
「何とかで始まり、何とかで終...
-
VBA EXCEL あるセルの中の一...
-
「abcで始まらない」を正規表現...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
正規表現で、特定の文字列を含...
-
csvデータのダブルクォーテーシ...
-
各項目がダブルクォーテーショ...
-
VBA 置換文字がみつからない時
-
秀丸エディタで、「-」や「ー」...
-
C言語でテキストファイルの内容...
-
csvデータ ダブルクォーテ...
-
C#で空白行を削除する方法
-
Excel・ユーザーフォームの情報...
-
xmlファイル内の文字列置換
-
フォントの色を保持したままセ...
-
正規表現 特定の文字列を含む行...
-
○文字目に文字挿入
-
複数のパワーポイントファイル...
-
スペースで区切られた氏名から...
-
3回以上の改行を2回にする正...
-
Eclipse 改行後のタブ
-
EXCEL VBA でCTRL+Fのダイア...
-
word VBA 改ページの繰り返しに...
-
MKエディタやサクラエディタを...
おすすめ情報