InfoPath フォームを使用してフィールド チームからデータを収集しています。完成したフォームはすべて、標準の InfoPath XML 形式で保存されます。ここで、これらすべての XML ファイルを Excel にインポートして、レポートをコンパイルしたいと考えています。私は一度に 1 つの XML ファイルを作成していましたが、もちろんばかげています。とにかく、友人がこの Excel VB マクロ コードを作成して、複数の XML ファイルを Excel シート タブ (XMLData) にインポートし、データを別のタブ (結果) にきれいにコピーしました。問題は、XML ファイル内のデータが順不同で Excel 列にインポートされることです。これに対するコードの簡単な修正はありますか? Excel VB マクロ コードは次のとおりです。
Sub ReadXML()
Dim strFile As String
MsgBox "I'll start reading please don't touch the computer"
Dim strPath As String
Dim colFiles As New Collection
Dim i As Integer
Dim wb As Workbook
strPath = ActiveSheet.Range("C2")
strFile = Dir(strPath)
While strFile <> ""
colFiles.Add strFile
strFile = Dir
Wend
If colFiles.Count > 0 Then
For i = 1 To colFiles.Count
Application.ScreenUpdating = False
Application.DisplayAlerts = False
strTargetFile = strPath & colFiles(i)
Set wb = Workbooks.OpenXML(Filename:=strTargetFile, LoadOption:=xlXmlLoadOpenXml)
Application.DisplayAlerts = True
wb.Sheets(1).UsedRange.Copy ThisWorkbook.Sheets("XMLDATA").Range("A" & i * 3 + 1)
ThisWorkbook.Sheets("XMLDATA").Rows(i * 3 + 3).Copy ThisWorkbook.Sheets("Result").Range("A" & i + 2)
wb.Close False
Application.ScreenUpdating = True
ActiveSheet.Range("P2") = i
Next i
ThisWorkbook.Sheets("XMLDATA").Rows(4).Copy ThisWorkbook.Sheets("Result").Rows(1)
ThisWorkbook.Sheets("XMLDATA").Rows(5).Copy ThisWorkbook.Sheets("Result").Rows(2)
MsgBox "I'm Done!"
End If
End Sub
InfoPath XML ファイルを Excel にインポートするための、よりシンプルで洗練されたソリューションがあるかもしれませんが、まだ見つかっていません。あなたの助けに感謝します。