VBA XML

VBA XML

VBA XML

Excel VBA XML

XMLの完全な形式は、HTMLファイルによく似た拡張マークアップ言語であり、異なるプログラムからのデータを格納して転送するように設計されています。 XMLファイルには、分割と区切り文字を含むデータが格納されます。 XMLファイルからExcelにデータをインポートできるVBAコードを作成できます。 XMLファイルから他の形式にデータをインポートするには、XMLファイルで使用できるデータとフィールドの種類を示すルールを設定する必要があります。 XMLファイルのVBAでマクロを作成するには、システムにXMLメモ帳は必須ではありません。 しかし、もし私たちが持っていれば、必要なデータのXMLファイルを簡単に読むことができます。

ExcelではXMLファイルのデータをインポートする規定がありますが、VBAを使用して、EXCELでXMLファイルを読み込んだりインポートしたりすることができます。

私たちのデモコースとビデオを見る

評価、Hadoop、Excel、モバイルアプリ、Web開発&より多くの。

VBA XMLのノードの種類

XMLでは、XMLファイルをwordやExcelなどの他のソースに読み込んだり解析したりするのに建設的に役立つさまざまなノードがあります。 各DocumentElementは、以下のノードリストの一部を参照します。

  • 親ノード
  • 最初の子
  • 最後の子
  • 子ノード
  • 次の兄弟
  • 前の兄弟

上記のすべてのノードは、子ノードのみがタイプを確認します。の配列型。

この例では、個々のシステムの任意の場所に保存されているXMLファイルにアクセスしてVBAにロードする非常に単純なVBAコードが表示されます。 通常、VBAを使用してEXCELでXMLファイルをインポートするには、MSXML2があります。DOMDocumentオブジェクトは、XML構造を介してデータを横断することを可能にします。 しかし、これはこの例では使用されないかもしれません。

このためには、スキーマの形式でデータ構造を作成できるXMLファイルが必要です。 以下は、会社のスキーマのスクリーンショットであり、その下には、名、姓、連絡先番号、電子メールIDなどの従業員の詳細を持つ従業員支店があります。

VBA XMLコード

VBA XMLコード

VBA XMLツリー

VBA XMLツリー

インポートする手順&ExcelでXMLを追加VBA

以下は、VBAコードを使用したExcelでのXMLの例です。

あなたはここでこのVBA XML Excelテンプレートをダウンロードすることができます–VBA XML Excel Template

例#1

ステップ1:最初にVBAのメニュータブを挿入し、以下に示すようにXMLを介してコード横方向のデータを書き込むモジュールを開きます。

挿入モジュール

ステップ2:コードの定義のためにVBA XMLの名前にサブプロシージャを記述します。

コード:

Sub VBA_XML()End Sub

VBA XMLの例1-2

VBA XMLの例1-2

ステップ3:既に説明したように、XMLファイルにはObjectが必要です。 そこで、ファイル名を格納するために使用される文字列としてDIMを使用して変数を定義します。

コード:

Sub VBA_XML()Dim XMLFile As StringEnd Sub

VBA XMLの例1-3

VBA XMLの例1-3

ステップ4: 今、私たちは、選択したパスが間違っている場合に警告メッセージを表示するために使用されるアプリケーションの表示アラートを使用します。

コード:

Sub VBA_XML()Dim XMLFile As StringApplication.DisplayAlerts = FalseEnd Sub

VBA XMLの例1-4

VBA XMLの例1-4

ステップ5:ここで、XMLファイルを保持しているリンクまたは場所を配置し、定義された変数に割り当てます。

コード:

Sub VBA_XML()Dim XMLFile As StringApplication.DisplayAlerts = FalseXMLFile = "C:\Ashwani\Company.xml"End Sub

VBA XMLの例1-5

VBA XMLの例1-5
注:アクセスしやすい場所にXMLファイルを保管してください。

ステップ6: 説明したように、MSXML2で最初のオブジェクトを取得します。ドムドゥクメント

コード:

Sub VBA_XML()Dim CusDoc As ObjectDim Base As ObjectSet CusDoc = CreateObject("MSXML2.DOMDoucment")End Sub

VBA XMLの例1-6

VBA XMLの例1-6

ステップ7:ExcelでXMLファイルのデータをロードするには、XMLファイル変数に保存した名前と場所を使用して、そのXMLファイルを開き、以下に示すようにリスト

コード:

Sub VBA_XML()Dim XMLFile As StringApplication.DisplayAlerts = FalseXMLFile = "C:\Ashwani\Company.xml"Workbooks.OpenXML Filename:=XMLFile, LoadOption:=xlXmlLoadImportToListEnd Sub

VBA XMLの例1-7

VBA XMLの例1-7

ステップ8: 最後に、アプリケーションオプションを再度使用して、アラートがある場合はTRUEとして表示します。

コード:

Sub VBA_XML()Dim XMLFile As StringApplication.DisplayAlerts = FalseXMLFile = "C:\Ashwani\Company.xml"Workbooks.OpenXML Filename:=XMLFile, LoadOption:=xlXmlLoadImportToListApplication.DisplayAlerts = TrueEnd Sub

VBA XMLの例1-8

VBA XMLの例1-8

ステップ9:コンパイル中にエラーが見つからない場合は、f8functionalキーを押して書かれたコードをコンパイルして実行します。

以下に示すように、XMLファイルに格納されているデータは新しいブックにインポートされません。 この単純なVBAコードを使用して、XMLファイルの任意の長さのデータをExcelに取得できます。

VBA XMLの例1-8

VBA XMLの例1-8

例2

VBAコードを使用してXMLファイルのデータをインポートする別の方法もあります。 このために、私たちは同じモジュールにも変更を加えることができる別のモジュールを持つことができます。ステップ1:このためには、モジュールが必要で、VBA XMLの名前にサブプロセスを記述します。

コード:

Sub VBA_XML2()End Sub

VBA XMLの例2-1

VBA XMLの例2-1

ステップ2: 以下に示すように、ファイルの場所とワークブックの別の変数を格納する文字列として変数を定義します。

コード:

Sub VBA_XML2()Dim XMLFile As StringDim WBook As WorkbookEnd Sub

VBA XMLの例2-2

VBA XMLの例2-2

ステップ3:今、前の例と同様に、我々は今、2つのアプリケーションを使用します,画面の更新の一つとFALSEとして表示アラートのための他の.

コード:

Sub VBA_XML2()Dim XMLFile As StringDim WBook As WorkbookApplication.ScreenUpdating = FalseApplication.DisplayAlerts = FalseEnd Sub

VBA XMLの例2-3

VBA XMLの例2-3

ステップ4:定義された変数XMLFileで、XMLファイルのパスを割り当てます。

コード:

Sub VBA_XML2()Dim XMLFile As StringDim WBook As WorkbookApplication.ScreenUpdating = FalseApplication.DisplayAlerts = FalseXMLFile = "C:\Ashwani\Company.xml"End Sub

定義された変数の例2-4

定義された変数の例2-4

ステップ5:例1と同様に、XMLFile変数で定義されたパスでXMLファイルを開くためのコードを設定し、データインポートをリストにロードします。

コード:

Sub VBA_XML2()Dim XMLFile As StringDim WBook As WorkbookApplication.ScreenUpdating = FalseApplication.DisplayAlerts = FalseXMLFile = "C:\Ashwani\Company.xml"Set WBook = Workbooks.OpenXML(Filename:=XMLFile, LoadOption:=xlXmlLoadImportToList)End Sub

VBA XMLの例2-5

VBA XMLの例2-5

ステップ6:Display alertアプリケーションをTRUEにするには、もう一度実行します。

コード:

Sub VBA_XML2()Dim XMLFile As StringDim WBook As WorkbookApplication.ScreenUpdating = FalseApplication.DisplayAlerts = FalseXMLFile = "C:\Ashwani\Company.xml"Set WBook = Workbooks.OpenXML(Filename:=XMLFile, LoadOption:=xlXmlLoadImportToList)Application.DisplayAlerts = TrueEnd Sub

表示アラートの適用例2-6

表示アラートの適用例2-6

ステップ7:データがインポートされたら、XMLファイルで使用可能なヘッダーの数に従って、選択したセルA1:D1から別のブックにコピーします。

コード:

Sub VBA_XML2()Dim XMLFile As StringDim WBook As WorkbookApplication.ScreenUpdating = FalseApplication.DisplayAlerts = FalseXMLFile = "C:\Ashwani\Company.xml"Set WBook = Workbooks.OpenXML(Filename:=XMLFile, LoadOption:=xlXmlLoadImportToList)Application.DisplayAlerts = TrueWBook.Sheets(1).UsedRange.Copy ThisWorkbook.Sheets(1).Range("A1:D1")End Sub

ワークブックの例2-7

ワークブックの例2-7

ステップ8:最後に、Screen updating applicationをTRUEとして使用してコードを閉じます。

コード:

Sub VBA_XML2()Dim XMLFile As StringDim WBook As WorkbookApplication.ScreenUpdating = FalseApplication.DisplayAlerts = FalseXMLFile = "C:\Ashwani\Company.xml"Set WBook = Workbooks.OpenXML(Filename:=XMLFile, LoadOption:=xlXmlLoadImportToList)Application.DisplayAlerts = TrueWBook.Sheets(1).UsedRange.Copy ThisWorkbook.Sheets(1).Range("A1:D1")Application.ScreenUpdating = TrueEnd Sub

画面更新アプリケーション例2-8

画面更新アプリケーション例2-8

ステップ9:このコードを実行すると、以下に示すように、XMLファイルのデータが新しいExcelブックにインポートされることがわかります。

VBA XMLの例2-9

VBA XMLの例2-9

VBA XMLの長所

  • XMLファイルを作成して作業する方法がわからない場合でも、このようなVBAコードを使用して、VBAコードまたはExcelにデータを抽出できます。
  • ノード参照を使用して、XMLデータの一部を解析したり、VBAウィンドウにデータを完全に解析したりすることができます。

覚えておくべきこと

  • すべてのノード参照には独自の値と意味があります。 右のノートタイプを使用すると、すべての条件のために非常に重要です。
  • XML TO VBAは、上記の例で見たコードに限定されません。
  • 上記の例で見たコードを使用して、任意のタイプのデータを抽出できます。 しかし、アクセスしやすい適切な場所とパスを維持してください。
  • 開発者タブのソースオプションからXMLファイルデータを開かずに抽出することもできます。 これは、Excelブックにそのままデータを取得するのに役立ちます。
  • 書かれたコードExcelファイルをマクロ対応のexcel形式で保存し、コードが失われないようにします。

推奨記事

これはVBA XMLのガイドです。 ここでは、インポートする手順について説明します&Excel VBAでXMLを追加し、実際の例とダウンロード可能なexcelテンプレートと一緒にノードの異なるタイプ。 また、私たちの他の提案された記事を通過することができます–

  1. VBA LBound
  2. VBAセル値を取得
  3. VBA IsError
  4. VBAソルバー
0 株式

Leave a Reply