次のコードを使用して、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
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
単純な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