0
VBAを初めて使用し、ExcelでVBAを使用して、行ごとにxmlファイルをエクスポートするマクロを作成します(印刷画面の例を参照)。すべてのフィールドは、「SSCC」フィールドを除く正しいフォーマットを表します。 ExcelファイルのVBA ExcelはLongに変換してオーバーフローを与えます
Sub CustomerOutToXML()
sTemplateXML = _
"<?xml version='1.0'?>" + vbNewLine + _
"<ENVELOPE>" + vbNewLine + _
"<TRANSACTION>" + vbNewLine + _
"<TYPE>" + vbNewLine + "</TYPE>" + vbNewLine + _
"</TRANSACTION>" + vbNewLine + _
"<CONTENT>" + vbNewLine + vbNewLine + _
"<DATE>" + vbNewLine + "</DATE>" + vbNewLine + _
"<SSCC>" + vbNewLine + "</SSCC>" + vbNewLine + _
"<ORDER>" + vbNewLine + "</ORDER>" + vbNewLine + _
"</CONTENT>" + vbNewLine + _
"</ENVELOPE>"
Set doc = CreateObject("MSXML2.DOMDocument")
doc.async = False
doc.validateOnParse = False
doc.resolveExternals = False
With ActiveWorkbook.Worksheets(9)
lLastRow = .UsedRange.Rows.Count
For lRow = 2 To 10
sFile = "T:\xxx\xxx\CustomerOutXML\CustomerOut" & .Cells(lRow, 1).Value & ".xml"
Dim sDATE As String
Dim sSSCC As Long
Dim sORDER As String
sDATE = CStr(.Cells(lRow, 2).Value)
sSSCC = CLng(.Cells(lRow, 3).Value)
sORDER = CStr(.Cells(lRow, 4).Value)
sTransactionType = ActiveSheet.Name
doc.LoadXML sTemplateXML
doc.getElementsByTagName("DATE")(0).appendChild doc.createTextNode(sDATE)
doc.getElementsByTagName("TYPE")(0).appendChild doc.createTextNode(sTransactionType)
doc.getElementsByTagName("SSCC")(0).appendChild doc.createTextNode(sSSCC)
doc.getElementsByTagName("ORDER")(0).appendChild doc.createTextNode(sORDER)
doc.Save sFile
Next
End With
End Sub
例をあなたはこの問題を解決するために私を助けてください:これは私がExcelシートを読み込み、XMLファイルを作成するための次のコードを使用オーバーフローエラー
を返します。
最大値は長く保持することができますが、 '代わりに文字列を使用し2,147,483,647'です。 –
これをStringに変換すると、この値が返されます。 1,0001640001E + 19 ではなく10001640001000000000 –
@ Jacob H:間違ったVisual Basic Longデータ型がリンクされています。 Microsoft Office VBAでは、Longは4バイトのみ-2,147,483,648〜2,147,483,647です。 https://msdn.microsoft.com/en-us/vba/language-reference-vba/articles/data-type-summaryを参照してください。 –