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

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

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

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

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

Q&A

1回答

593閲覧

有識者様:XMLの特定の属性値から、Excelに転記するマクロの実装について

saito.kaz

総合スコア76

VBA

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

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

0グッド

0クリップ

投稿2018/09/10 11:22

有識者 様

いつもお世話になります。
Excelのマクロの使い方について、質問があり投稿致しました。
下記が行いたい事となりますが、過去の回答を確認しても上手くExcel上で実現できず、
再度ご質問させて頂く流れとなりました。

お手数ですが、マクロについての有識者がおりましたら回答頂けないでしょう。

要件:
・XMLファイルをインプットとして、下記のタグに従って、タグ値をExcelに転記する。
対象のタグ値は、name値・array値・disable値・description値・value値です。

・タグと出力先の位置は、写真の通りです。

注意点として、Value値が複数ある場合があります。また<Value>タグが存在しない場合もあります。

イメージ説明

下記がタグ値のサンプルとなります。

<preference name="名前1" type="String" array="true" disabled="false">  <preference_description>備考1</preference_description>  <context name="test">    <value>r-</value>    <value>r-</value>  </context> </preference> <preference name="名前3" type="String" array="true" disabled="false">  <preference_description>説明1</preference_description> </preference> <preference name="名前2" type="Logical" array="false" disabled="false">  <preference_description>備考2</preference_description>   <context name="test">    <value>TRUE</value>   </context> </preference>

実際の階層は下記の通りです。

<?xml version="1.0" encoding="Shift_JIS"?> <preferences>  <category name="カテゴリ名">  <category_description></category_description> <preference name="名前1" type="String" array="true" disabled="false">  <preference_description>説明1</preference_description> </preference> <preference name="名前2" type="Logical" array="false" disabled="false">  <preference_description>説明2</preference_description>   <context name="test">    <value>true</value>   </context> </preference> </category name> </preference>

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

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

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

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

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

tonkun4os

2018/09/12 15:24

ここは技術者の問題解決の場です。この様な内容は他でお聞きになるか、作成できない場合はフリーランスに頼んでください。
seastar3

2018/10/06 00:29 編集

実際の階層のxmlコードに誤りがあります。最後の2行ですが、</category name>は</category>で、</preference>は</preferences>です。また、XMLのタグも並べるのが適切でしょう。
guest

回答1

0

以下のXMLファイルなら、ExcelでもIEでも正式に読み取ります。あとはVBAでインポートするコードを書いた後で<value>タグが重複する行は、nameからpreferance_discriptionのそれぞれの列を該当行まで縦にセルを結合する命令を繰り返せば思惑のワークシートになるでしょう。

xml

1<?xml version="1.0" encoding="Shift_JIS"?> 2<preferences> 3 <category name="カテゴリ名"> 4  <category_description></category_description> 5 <preference name="名前1" type="String" array="true" disabled="false"> 6  <preference_description>備考1</preference_description> 7  <context name="test"> 8    <value>r-</value> 9    <value>r-</value> 10  </context> 11 </preference> 12 13 <preference name="名前3" type="String" array="true" disabled="false"> 14  <preference_description>説明1</preference_description> 15 </preference> 16 17 <preference name="名前2" type="Logical" array="false" disabled="false"> 18  <preference_description>備考2</preference_description> 19   <context name="test"> 20    <value>TRUE</value> 21   </context> 22 </preference> 23 </category> 24</preferences>

投稿2018/10/06 00:34

編集2018/10/06 00:38
seastar3

総合スコア2285

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問