次の方法で共有


Excel 2010 での XML マッピング スキーマの作成

Office Quick Note バナー

**Excel 2010 の機能拡張の概要:**Excel 2010 で XML マッピング スキーマを作成して利用する方法を説明します。

適用対象: Excel 2010 | Office 2010 | VBA

この記事の内容
XML データ ファイルを作成する
XML マッピング スキーマ ファイルを作成する
スキーマと XML データを Excel にインポートする
次の手順

Applies to:    Microsoft Excel 2010

公開日:  2010 年 11 月

この演習では、サンプルの XML データ ファイルを作成します。その後、2 つのメソッドのどちらかを使用して XML マッピング スキーマを作成します。さらに、そのスキーマを使用してサンプルの XML データにマップされたテーブルを作成します。この作業を完了するには、以下の手順を実行する必要があります。

  • XML データ ファイルを作成する

  • XML マッピング スキーマ ファイルを作成する

  • スキーマと XML データを Excel にインポートする

XML データ ファイルを作成する

この作業では、この演習で追って使用する XML データ ファイルをテキスト エディターで作成します。

XML データ ファイルを作成するには

  1. テキスト エディター (メモ帳など) を起動します。

  2. 以下の XML をエディターに貼り付けるか入力します。

    <?xml version='1.0'?>
    <BookInfo>
       <Book>
          <ISBN>989-0-487-04641-2</ISBN>
          <Title>My World</Title>
          <Author>Nancy Davolio</Author>
          <Quantity>121</Quantity>
       </Book>
       <Book>
          <ISBN>981-0-776-05541-0</ISBN>
          <Title>Get Connected</Title>
          <Author>Janet Leverling</Author>
          <Quantity>435</Quantity>
       </Book>
       <Book>
          <ISBN>999-1-543-02345-2</ISBN>
          <Title>Honesty</Title>
          <Author>Robert Fuller</Author>
          <Quantity>315</Quantity>
       </Book>
    </BookInfo>
    
  3. ドキュメントを C:\BookData.xml として保存します。

  4. テキスト エディターを閉じます。

XML マッピング スキーマ ファイルを作成する

この作業では、Microsoft Visual Basic for Applications (VBA) を使用してカスタム XML マッピング スキーマを作成します。スキーマの作成には、テンプレート XML をコードに明示的に記述する方法と、XML ファイルを読み取って文字列にしたうえでスキーマをその文字列から作成する方法のどちらかを使用できます。

XML をコードに明示的に記述して Excel で XSD を作成するには

  1. Excel 2010 で空のブックを作成します。

  2. Alt + F11 キーを押して Visual Basic エディターを開きます。

  3. [挿入]、[モジュール] の順にクリックして、標準モジュールを挿入します。

  4. 以下のコードをモジュール内に貼り付けるか入力します。

        Sub Create_XSD()
           Dim StrMyXml As String, MyMap As XmlMap
           Dim StrMySchema As String
           StrMyXml = "< BookInfo >"
           StrMyXml = StrMyXml & "<Book>"
           StrMyXml = StrMyXml & "<ISBN>Text</ISBN>"
           StrMyXml = StrMyXml & "<Title>Text</Title>"
           StrMyXml = StrMyXml & "<Author>Text</Author>"
           StrMyXml = StrMyXml & "<Quantity>999</Quantity>"
           StrMyXml = StrMyXml & "</Book>"
           StrMyXml = StrMyXml & "<Book></Book>"
           StrMyXml = StrMyXml & "</ BookInfo >"
    
           ' Turn off async loading.
           Application.DisplayAlerts = False
           ' Add the string to the XmlMaps collection.
           Set MyMap = ThisWorkbook.XmlMaps.add(StrMyXml)
           Application.DisplayAlerts = True
    
           ' Create an empty file and output the schema.
           StrMySchema = ThisWorkbook.XmlMaps(1).Schemas(1).XML
           Open "C:\MySchema.xsd" For Output As #1
           Print #1, StrMySchema
           Close #1
        End Sub
    
  5. Visual Basic エディターを閉じます。

  6. 次に、コードを実行します。[開発] タブで、[マクロ] をクリックし、[Create_XSD] を強調表示して、[実行] をクリックします。スキーマ ファイルには C:\MySchema.xsd を指定します。このファイルは、後で XML マップを作成するために Excel に読み込むことになります。

XML データを文字列に変換して Excel でスキーマを作成するには

  1. 空の Excel 2010 ブックで、Alt + F11 キーを押して Visual Basic エディターを開きます。

  2. [挿入]、[モジュール] の順にクリックして、標準モジュールを挿入します。

  3. 以下のコードをモジュール内に貼り付けるか入力します。

        Sub Create_XSD2()
           Dim StrMyXml As String, MyMap As XmlMap
           Dim StrMySchema As String
           ' Book.xml is the file created in section one of this topic.
           StrMyXml = "C:\BookData.xml"
    
           ' Turn off async loading.
           Application.DisplayAlerts = False
           ' Add the string to the XmlMaps collection.
           Set MyMap = ThisWorkbook.XmlMaps.Add(StrMyXml)
           Application.DisplayAlerts = True
    
           ' Create an empty file and output the schema.
           StrMySchema = ThisWorkbook.XmlMaps(1).Schemas(1).XML
           Open "C:\BookData2.xsd" For Output As #1
           Print #1, StrMySchema
           Close #1
        End Sub
    
  4. Visual Basic エディターを閉じます。

  5. 次に、コードを実行します。[開発] タブで、[マクロ] をクリックし、[Create_XSD] を強調表示して、[実行] をクリックします。スキーマ ファイルには C:\MySchema.xsd を指定します。このファイルは、後で XML マップを作成するために Excel 2010 に読み込むことになります。

スキーマと XML データを Excel にインポートする

この作業では、前述のセクションで作成したスキーマを Excel にインポートして XML マップを作成し、XML データ ファイルをインポートします。

XML マップを作成して XML データを Excel にインポートするには

  1. [開発] タブの [XML] グループで、[ソース] をクリックして [XML ソース] 作業ウィンドウを開きます。

  2. 作業ウィンドウで [XML の対応付け] をクリックします。

  3. [XML の対応付け] ダイアログ ボックスで、[追加] をクリックし、参照によって BookInfo.xsd を指定したうえで [開く] をクリックして、[OK] をクリックします。

  4. [XML ソース] 作業ウィンドウで、BookInfo ノードをセル A1 にドラッグします。すると、図 1 に示すようにワークシート内に表が作成されます。必要に応じて表の書式を設定できます。

    図 1. XML マップから作成された表

    Xml の対応付けから作成された表

  5. 次に、XML データ ファイルをインポートします。[開発] タブで [インポート] をクリックします。

  6. [XML のインポート] ダイアログ ボックスで、参照によって XML データ ファイルを指定し、[インポート] をクリックします。データは、図 2 に示すように書式設定された表にマップされます。

    図 2. 表にインポートされた XML データ

    XML データがテーブルにインポートされる

次の手順