2017-01-20 3 views
0

私は現在、スプレッドシートにXMLファイルをインポートするいくつかのVBAを書こうとしています。私は現在、以下を持っていますが、これはすべてのXMLが1つのセルに入ります。とにかく、各タグを別のセルに入れることができますか?あなたのXMLファイルは、各XMLタグの後に適切な新しい行でフォーマットされている場合、これは行う必要があり、VBAを使用してXMLをインポートする。別のセルの各タグライン

Ideal Macro

Dim filter As String 
Dim caption As String 
Dim Filename As String 
Dim Overall As Workbook 
Dim targetWorkbook As Workbook 

    Set targetWorkbook = Application.ActiveWorkbook 

    filter = "Text files (*.xml),*.xlsm " caption = "Please Select an input file " Filename = Application.GetOpenFilename(filter, , caption) 

    Set Overall = Application.Workbooks.Open(Filename) 

     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 
     Overall.Close 
+0

このコードはスクリーンショット出力をレンダリングしますか? [Workbooks.OpenXML](https://msdn.microsoft.com/en-us/library/office/ff838643.aspx)XML値をセルにマップします。タグ/属性マークアップは表示されず、データのみが表示されます。 – Parfait

+0

それはしません。スクリーンショットはどのように私はそれを見たいです。現在、すべてのテキストを1つのセルに出力します。あなたが提供したWebサイトからコードを試しましたが、これは似ています。ありがとう、結構です ! – Nick

答えて

0

(添付写真を参照してください):

Dim fso As New Scripting.FileSystemObject 

    Dim xmlFile As Scripting.File 
    Set xmlFile = fso.GetFile(Filename) 

    Dim ts As Scripting.TextStream 
    Set ts = xmlFile.OpenAsTextStream(ForReading) 

    Dim i As Long: i = 2 
    Dim ws as Worksheet 
    Set ws = Workbooks("OutputWorkbook").Worksheets("OutputSheet") 

    While Not ts.AtEndOfStream 
     ws.Cells(i, 1).Value = ts.ReadLine 
     i = i + 1 
    Wend 

    ts.Close 
    Set ts = Nothing 

は、Microsoftスクリプトへの参照が必要実行時に必要なテキストを配置するためにコード全体を微調整する必要があるかもしれません。

関連する問題