質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

1回答

4870閲覧

XMLを読み込み、特定の子ノードに要素を挿入して別名のXMLファイルとして出力したい

cesolution

総合スコア217

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2017/09/19 00:11

###前提・実現したいこと
現在、VBAを使って以下の内容を実装しようとしております。
①Excelファイルと同じ階層にある特定のXMLファイルを読み込みます。
②XMLファイルの特定の子ノードに要素を追加していきます。
③情報追加が終わったら、XMLDocumentを別名で保存します。
イメージ説明

上記は実装できたのですが、問題は①のセクションで、同じ階層にあるXMLファイルを読み込んでいるのですが、他部署の方に配布する際に、元となるXMLファイルを添付するのを失念したりするケースがあるため、できればこれ(XMLファイルの読み込み)を省略したいと考えています。
VBAで新規にXMLファイルを作成するつもりで書けば良いのかもしれませんが、これでは手間がかかるため、できれば現在BaseとしているXMLの構造と、入力済のデータはそのまま使用したいと考えています。
XMLファイルをエクセルファイルに埋め込む等(できるのか分かりませんが)、なにか良案がございましたら、教えていただければ幸いです。

###問題のソースコード箇所

VBA

1 Set XMLDocument = New MSXML2.DOMDocument60 2 FileName = ws.Range("FileName") + ".xml"

↑上記のxmlファイルの読み込みを別の方法で対処したいと考えています。
###補足情報(言語/FW/ツール等のバージョンなど)
VBA

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

MSXML2のXML読み込みはファイル経由でしかできなそうです。
よって、

・FileSystemObjectを使用してXMLをファイル出力(この時は単純にXMLをテキストとして記載すればいいでしょう)(保存先はGetSpecialFolder()メソッドを使ってtempフォルダは以下にすればよいと思います)
・保存したXMLをロード
・tempフォルダに保存したXMLを削除する

この流れだとご希望の機能は実現できそうです。

投稿2017/09/19 03:37

yamashita_yuich

総合スコア316

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

cesolution

2017/09/19 04:03

ご回答ありがとうございます。 ご連絡いただいた方法で完璧に動作いたしました。 非常に助かりました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問