
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で質問しましょう!
似たような質問が見つかりました
- XML XML同じ名前の要素を自動で集約するツール 1 2022/04/11 09:21
- Visual Basic(VBA) Excel VBA 教えてください。 VBA初心者です。 詳しい方がいましたら教えてください。 下記 3 2023/04/25 11:22
- フリーソフト フォルダ、ファイル名の一括変換について 3 2023/03/16 09:23
- Visual Basic(VBA) vbaの構文の修正相談(xmlファイルを順に開いてコピペ作業) 1 2023/04/22 01:18
- その他(IT・Webサービス) 見たことのない形式で日付が表示されているのでそれを解析してほしい 3 2023/01/23 16:53
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- WordPress(ワードプレス) ワードプレスにて .xmlファイルの使い方をご存知の方、よろしくお願いいたします。 2 2022/09/30 00:55
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
- Excel(エクセル) PDFファイルに日付を名前にして保存したい。 エクセル2019でワークシートに請求書のフォームを作り 2 2023/05/27 11:13
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C#で空白行を削除する方法
-
VBA 置換文字がみつからない時
-
スペースで区切られた氏名から...
-
csvデータ ダブルクォーテ...
-
正規表現で、特定の文字列を含...
-
正規表現でURLを抽出したいと思...
-
Excel VBA リストに一致したデ...
-
trで文字削除
-
ダブルコーテーション 、"を二...
-
ExcelVBA バッチファイル編集
-
各項目がダブルクォーテーショ...
-
EXCEL警告「置換対象のデータが...
-
EXCELマクロを用いてグラフの系...
-
正規表現で式展開を教えてくだ...
-
フォントの色を保持したままセ...
-
EXCEL VBA でCTRL+Fのダイア...
-
対称群はなぜそう呼ばれるので...
-
\\(円)記号を置換したい
-
秀丸エディタで、「-」や「ー」...
-
秀丸での一括変換について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA 置換文字がみつからない時
-
正規表現で、特定の文字列を含...
-
各項目がダブルクォーテーショ...
-
csvデータ ダブルクォーテ...
-
スペースで区切られた氏名から...
-
C言語でテキストファイルの内容...
-
○文字目に文字挿入
-
秀丸エディタで、「-」や「ー」...
-
csvデータのダブルクォーテーシ...
-
Excel VBA リストに一致したデ...
-
テキストボックスの文字列を置...
-
EXCELマクロを用いてグラフの系...
-
ハングルを日本語に置換
-
3回以上の改行を2回にする正...
-
C#で空白行を削除する方法
-
word VBA 改ページの繰り返しに...
-
フォントの色を保持したままセ...
-
xmlファイル内の文字列置換
-
正規表現 特定の文字列を含む行...
-
EXCEL VBA でCTRL+Fのダイア...
おすすめ情報