Excel 2010 での XML マッピング スキーマの作成
**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 データ ファイルを作成するには
テキスト エディター (メモ帳など) を起動します。
以下の 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>
ドキュメントを C:\BookData.xml として保存します。
テキスト エディターを閉じます。
XML マッピング スキーマ ファイルを作成する
この作業では、Microsoft Visual Basic for Applications (VBA) を使用してカスタム XML マッピング スキーマを作成します。スキーマの作成には、テンプレート XML をコードに明示的に記述する方法と、XML ファイルを読み取って文字列にしたうえでスキーマをその文字列から作成する方法のどちらかを使用できます。
XML をコードに明示的に記述して Excel で XSD を作成するには
Excel 2010 で空のブックを作成します。
Alt + F11 キーを押して Visual Basic エディターを開きます。
[挿入]、[モジュール] の順にクリックして、標準モジュールを挿入します。
以下のコードをモジュール内に貼り付けるか入力します。
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
Visual Basic エディターを閉じます。
次に、コードを実行します。[開発] タブで、[マクロ] をクリックし、[Create_XSD] を強調表示して、[実行] をクリックします。スキーマ ファイルには C:\MySchema.xsd を指定します。このファイルは、後で XML マップを作成するために Excel に読み込むことになります。
XML データを文字列に変換して Excel でスキーマを作成するには
空の Excel 2010 ブックで、Alt + F11 キーを押して Visual Basic エディターを開きます。
[挿入]、[モジュール] の順にクリックして、標準モジュールを挿入します。
以下のコードをモジュール内に貼り付けるか入力します。
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
Visual Basic エディターを閉じます。
次に、コードを実行します。[開発] タブで、[マクロ] をクリックし、[Create_XSD] を強調表示して、[実行] をクリックします。スキーマ ファイルには C:\MySchema.xsd を指定します。このファイルは、後で XML マップを作成するために Excel 2010 に読み込むことになります。
スキーマと XML データを Excel にインポートする
この作業では、前述のセクションで作成したスキーマを Excel にインポートして XML マップを作成し、XML データ ファイルをインポートします。
XML マップを作成して XML データを Excel にインポートするには
[開発] タブの [XML] グループで、[ソース] をクリックして [XML ソース] 作業ウィンドウを開きます。
作業ウィンドウで [XML の対応付け] をクリックします。
[XML の対応付け] ダイアログ ボックスで、[追加] をクリックし、参照によって BookInfo.xsd を指定したうえで [開く] をクリックして、[OK] をクリックします。
[XML ソース] 作業ウィンドウで、BookInfo ノードをセル A1 にドラッグします。すると、図 1 に示すようにワークシート内に表が作成されます。必要に応じて表の書式を設定できます。
図 1. XML マップから作成された表
次に、XML データ ファイルをインポートします。[開発] タブで [インポート] をクリックします。
[XML のインポート] ダイアログ ボックスで、参照によって XML データ ファイルを指定し、[インポート] をクリックします。データは、図 2 に示すように書式設定された表にマップされます。
図 2. 表にインポートされた XML データ