web-dev-qa-db-ja.com

VBAを使用してXMLファイルからExcelシートにデータをフェッチする方法

次のコードを使用して、XMLからExcelにデータをフェッチしました。しかし問題は、結果が新しいワークブック「Book1」で開かれることです。しかし、このマクロがある同じExcelの特定のワークシートで結果を取得したいと考えています。
スキーマはすべてのXMLで変更されるため、コードでスキーマを作成したくないことに注意してください。以下のコードでは、スキーマを指定する必要はありません。適切な列名で結果を新しいExcelシートにダンプできます。同じワークブックのsheet2で結果を取得するにはどうすればよいですか?

Sub ImportXMLtoList()
 Dim strTargetFile As String
 Application.DisplayAlerts = False
 strTargetFile = "C:\example.xml"
 Workbooks.OpenXML Filename:=strTargetFile, LoadOption:=xlXmlLoadImportToList
 Application.DisplayAlerts = True

End Sub
8
tester
Sub ImportXMLtoList()
Dim strTargetFile As String
Dim wb as Workbook

     Application.Screenupdating = False
     Application.DisplayAlerts = False
     strTargetFile = "C:\example.xml"
     Set wb = Workbooks.OpenXML(Filename:=strTargetFile, LoadOption:=xlXmlLoadImportToList)
     Application.DisplayAlerts = True

     wb.Sheets(1).UsedRange.Copy ThisWorkbook.Sheets("Sheet2").Range("A1")
     wb.Close False
     Application.Screenupdating = True


End Sub
17
Tim Williams

単純なxmlmapを作成しました。 XMLデータをExcelにインポートするコード(右クリック-xml-import)、XMLからデータを取得するコードなどが必要です。作成したxmlmapを保持し、xlxsのデータを別のxlmのデータに置き換えるだけです。

'Select the file
Fname = Application.GetOpenFilename(FileFilter:="xml files (*.xml), *.xml", MultiSelect:=False)

'Check if file selected
If Fname = False Then
    Exit Sub
    Else
Workbooks.Open Filename:=Fname
End If
0
Alex