57
78

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Excel 2010 を使って XML ファイルを編集する

Posted at

仕事でアプリケーションを作った際に、XML からデータを読み込めるようにしました。
しかし、XML の編集はできる人が限られてしまうので、エクセルで XML ファイルのデータを編集できるようにしてみました。

用意するアプリ

  1. Excel 2010。
  2. XML スキーマファイル(*.xsd)を作れるアプリケーション。

前準備

Excel 2010 の「開発」タブを使えるようにしておきます。
「開発」タブを表示する方法は以下を参照のこと。

[開発] タブを表示する - Outlook - Microsoft Office
http://office.microsoft.com/ja-jp/outlook-help/HA101819080.aspx

任意のワークブック(*.xlsx)で XML データを編集できるようにする。

まずは任意のワークブックで XML のデータを編集できるようにします。

ひな形となる XML ファイルを作る。

まずは、ひな形となる XML ファイルを用意します。
今回はこのようなひな形を用意しました。

test.xml
<?xml version = "1.0" encoding = "utf-8"?>
<root>
  <title>title</title>
  <items>
    <item>
      <id>id1</id>
      <name>name1</name>
      <command>command1</command>
    </item>
    <item>
      <id>id2</id>
      <name>name2</name>
      <command>command2</command>
    </item>
  </items>
</root>

##ひな形から、XML スキーマファイル(*.xsd)を作る。
次に、XML スキーマファイルを作成します。
スキーマファイルとは、XML の構造が記述されているファイルです。

Visual Studio の Professional 以上には、XML から XML スキーマファイルを作成するための機能がありますので、今回はそれを使います。

まず、Visual Studio でひな形となる XML ファイルを読み込みます。

次に、メニューの「XML > スキーマの作成」を選択します。
select_xml_schema.png

すると、以下の様な xsd ファイルが自動的に作成されます。

test.xsd
<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="root">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="title" />
        <xs:element name="items">
          <xs:complexType>
            <xs:sequence>
              <xs:element maxOccurs="unbounded" name="item">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="id" />
                    <xs:element name="name" />
                    <xs:element name="command" />
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

この時点ではまだファイルとして保存されていないので、「名前をつけて保存」で保存します。

##エクセルのワークシートのセルに XML の要素を対応付ける。
先ほど作った XML スキーマファイルを使って、エクセルのワークシートに XML の要素を対応付けします。

まず、エクセルで任意のファイルを開きます。

次に、「開発」タブの「XML > ソース」をクリックします。
select_xml_source.png

すると、右側に「XML ソース」ウィンドウが表示されます。
show_xml_source.png


このウィンドウの「XML の対応付け」ボタンを押します。
すると、以下の様なダイアログが表示されます。
show_xml_association.png


このダイアログの「追加」ボタンを押して、先ほど作った XML スキーマファイルを読み込みます。
読み込んでこのダイアログに戻ってきたら「OK」ボタンを押します。

ダイアログを閉じると、先ほどの「XML ソース」ウィンドウに XML スキーマファイルに記述されていた要素が表示されます。
xml_source_association.png

ここに表示されている要素を選択して、セルにドラッグするとそのセルと要素が対応付けられます。
関連付けた例を以下に表示します。

xml_cell_association.png

この例では、以下の様な対応付けがされています。

  • 「root/title」と「A1」
  • 「root/items/item/id」と「A3~A4」
  • 「root/items/item/name」と「B3~B4」
  • 「root/items/item/command」と「C3~C4」

**「root/items/item」の数は、「C4」の右下の【」】**を下にドラッグすることで増やすことができます。

これでこのワークブックを使って XML データの編集が出来る状態となりました。

XML ファイルからデータを読み込む

では、先ほどの XML ファイルのひな形からワークブックにデータを読み込んでみましょう。

「開発」タブの「XML > インポート」をクリックします。
select_xml_import.png

そこから先ほどのひな形を選択してインポートします。
すると、対応付けに応じて XML のデータがセルに読み込まれます。
imported_xml.png

**「root/items/items」**の数に応じて、対応付けの範囲も自動的に調整されています。

読み込んだデータをエクセル上で編集する

編集は、対応付けされたセルの中身を書き換えるだけです。

例として、以下のように編集してみます。
xml_changed.png

値はもちろん、**「root/items/item」**の数も変更してみました。

編集したデータを XML ファイルとして出力する

では、この編集結果を XML ファイルとして出力してみましょう。

「開発」タブの「XML > エクスポート」をクリックします。
select_xml_export.png

そこから出力先を指定して、エクスポートします。
先ほど編集したものをエクスポートした結果は以下のとおりです。

test2.xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<root>
  <title>title2</title>
  <items>
    <item>
      <id>id3</id>
      <name>name3</name>
      <command>command3</command>
    </item>
    <item>
      <id>id4</id>
      <name>name4</name>
      <command>command4</command>
    </item>
    <item>
      <id>id5</id>
      <name>name5</name>
      <command>command5</command>
    </item>
  </items>
</root>

これで無事に XML のデータを編集することが出来ました。

参考サイト

XML データをエクスポートする - Excel - Microsoft Office
http://office.microsoft.com/ja-jp/excel-help/HP010206401.aspx

Excel(CSV)からXMLへの変換(エクスポート)方法
http://www.saka-en.com/office/excel-export-to-xml/

57
78
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
57
78

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?