メキシコ用残高試算表レポートのXML形式への変換
財務レポート・センターから、メキシコ用残高試算表レポートを表示できます。レポートを表示した後で、XML形式に変換して、税務当局(SAT)のインターネット・ポータルにアップロードできます。
メキシコ用残高試算表レポートの表示
レポートを表示するには、次のステップを実行します。
-
Oracle Fusion Cloud Applicationsにサインインします。
-
一般会計マネージャのホーム・ページで、「一般会計: 財務レポート・センター」→「マイ・フォルダ」→「メキシコ用残高試算表レポート」を選択します。
-
レポートをHTMLで表示します。
-
ページの先頭にある「HTMLプレビュー」リストをクリックし、「Excelにエクスポート」を選択します。
レポートがMicrosoft Excelで開きます。
-
ローカル・フォルダのレポートをExcelマクロ対応ワークブックとして保存します。
メキシコ用残高試算表レポートのXML形式への変換
レポートをSATポータルにアップロード可能なXML形式に変換するには、次のステップを実行します。
-
Microsoft Excelでレポートを開き、「表示」タブをクリックします。
-
「マクロ」→「マクロの表示」をクリックします。
-
「マクロ名」フィールドにGenerateXMLと入力し、「作成」をクリックします。
Microsoft Visual Basicエディタが開きます。
-
次のレポート変換コードをMicrosoft Visual Basicエディタにコピーして貼り付けます。
Sub Generate_XML() ' ' GenerateXML Macro Dim Version As String Dim RFC As String Dim Mes As String Dim Anio As String Dim TipoEnvio As String Dim FechaModBal As String Dim Sello As String Dim noCertificado As String Dim BalanzaCertificado As String Dim XML As String Dim XML2 As String Dim Row As String Dim Row2 As String Dim ColumnName As String Dim ColumnValue As String Dim MesP1 As String Dim MesP2 As String Dim MesPr As String Dim Pos As Integer Dim Pos2 As Integer Dim Pos3 As Integer Dim MidStr As String Dim MidStr2 As String Dim Arr Sheets(1).Select Version = Replace(ActiveSheet.Cells(3, 1).Value, " ", "") RFC = Replace(ActiveSheet.Cells(4, 1).Value, " ", "") Mes = Replace(ActiveSheet.Cells(3, 1).Value, " ", "") Anio = Replace(ActiveSheet.Cells(6, 1).Value, " ", "") TipoEnvio = Replace(ActiveSheet.Cells(7, 1).Value, " ", "") FechaModBal = Replace(ActiveSheet.Cells(8, 1).Value, " ", "") Sello = Replace(ActiveSheet.Cells(9, 1).Value, " ", "") noCertificado = Replace(ActiveSheet.Cells(10, 1).Value, " ", "") BalanzaCertificado = Replace(ActiveSheet.Cells(11, 1).Value, " ", "") Arr = Array("Version", "RFC", "Mes", "Anio", "TipoEnvio", "FechaModBal", "Sello", "noCertificado", "Certificado") MesP1 = Mid(Mes, 6, 3) 'MsgBox MesP1 MesPr = Mid(Mes, 6, 2) If ((MesP1 = "Jan") Or (MesP1 = "Ene") Or (MesP1 = "ENE") Or (MesP1 = "JAN") Or (MesPr = "01")) Then MesP2 = "Mes=" & Chr(34) & "01" & Chr(34) 'MsgBox Mes ElseIf ((MesP1 = "Feb") Or (Mes = "FEB") Or (MesPr = "02")) Then MesP2 = "Mes=" & Chr(34) & "02" & Chr(34) ElseIf ((MesP1 = "Mar") Or (Mes = "MAR") Or (MesPr = "03")) Then MesP2 = "Mes=" & Chr(34) & "03" & Chr(34) ElseIf ((MesP1 = "Apr") Or (MesP1 = "Abr") Or (MesP1 = "ABR") Or (MesP1 = "APR") Or (MesPr = "04")) Then MesP2 = "Mes=" & Chr(34) & "04" & Chr(34) ElseIf ((MesP1 = "May") Or (MesP1 = "MAY") Or (MesPr = "05")) Then MesP2 = "Mes=" & Chr(34) & "05" & Chr(34) ElseIf ((MesP1 = "Jun") Or (MesP1 = "JUN") Or (MesPr = "06")) Then MesP2 = "Mes=" & Chr(34) & "06" & Chr(34) ElseIf ((Mes = "Jul") Or (MesP1 = "JUL")) Or (MesPr = "07") Then MesP2 = "Mes=" & Chr(34) & "07" & Chr(34) ElseIf ((MesP1 = "Aug") Or (MesP1 = "AGO") Or (MesP1 = "Ago") Or (MesP1 = "AUG") Or (MesPr = "08")) Then MesP2 = "Mes=" & Chr(34) & "08" & Chr(34) ElseIf ((MesP1 = "Sep") Or (MesP1 = "SEP") Or (MesPr = "09")) Then MesP2 = "Mes=" & Chr(34) & "09" & Chr(34) ElseIf ((MesP1 = "Oct") Or (MesP1 = "OCT") Or (MesPr = "10")) Then MesP2 = "Mes=" & Chr(34) & "10" & Chr(34) ElseIf ((MesP1 = "Nov") Or (MesP1 = "NOV") Or (MesPr = "11")) Then MesP2 = "Mes=" & Chr(34) & "11" & Chr(34) ElseIf ((MesP1 = "Dec") Or (MesP1 = "DEC") Or (MesP1 = "Dic") Or (MesP1 = "DIC") Or (MesPr = "12")) Then MesP2 = "Mes=" & Chr(34) & "12" & Chr(34) Else MesP2 = "Mes=" & Chr(34) & "13" & Chr(34) End If 'MsgBox MesP2 'XML = XML & "<BCE:Balanza xmlns:BCE=" & Chr(34) & "http://www.sat.gob.mx/esquemas/ContabilidadE/1_1/BalanzaComprobacion" & Chr(34) & " xmlns:xsi=" & Chr(34) & "http://www.w3.org/2001/XMLSchema-instance" & Chr(34) & " xsi:schemaLocation=" & Chr(34) & "http://www.sat.gob.mx/esquemas/ContabilidadE/1_1/BalanzaComprobacion http://www.sat.gob.mx/esquemas/ContabilidadE/1_1/BalanzaComprobacion/BalanzaComprobacion_1_1.xsd" & Chr(34) & " " & Version & " " & RFC & " " & Mes & " " & Anio & " " & TipoEnvio & " " & FechaModBal & " " & Sello & " " & noCertificado & " " & BalanzaCertificado & ">" & vbNewLine XML = XML & "<BCE:Balanza xmlns:BCE=" & Chr(34) & "http://www.sat.gob.mx/esquemas/ContabilidadE/1_3/BalanzaComprobacion" & Chr(34) & " xmlns:xsi=" & Chr(34) & "http://www.w3.org/2001/XMLSchema-instance" & Chr(34) & " xsi:schemaLocation=" & Chr(34) & "http://www.sat.gob.mx/esquemas/ContabilidadE/1_3/BalanzaComprobacion http://www.sat.gob.mx/esquemas/ContabilidadE/1_3/BalanzaComprobacion/BalanzaComprobacion_1_3.xsd" & Chr(34) XML2 = XML Row2 = "" 'Pos is Position of Inverted Commas from Start 'Pos2 is Length of String between Inverted Commas 'Pos3 is Length of Field Name For I = 1 To 9 Pos = (InStr(1, Replace(ActiveSheet.Cells(I, 1).Value, " ", ""), Chr(34))) + 1 Pos2 = InStr(Pos, Replace(ActiveSheet.Cells(I, 1).Value, " ", ""), Chr(34)) Pos2 = Pos2 - Pos Pos3 = Pos - 3 'MsgBox Pos2 ' MsgBox I MidStr = Mid(Replace(ActiveSheet.Cells(I, 1).Value, " ", ""), Pos, Pos2) MidStr2 = Mid(Replace(ActiveSheet.Cells(I, 1).Value, " ", ""), 1, Pos3) ' MsgBox MidStr2 If MidStr <> "" Then If MidStr2 = "Mes" Then Row2 = Row2 & MesP2 & " " Else Row2 = Row2 & MidStr2 & "=" & Chr(34) & MidStr & Chr(34) & " " End If 'Row2 = Row2 & " " & Replace(ActiveSheet.Cells(I, 1).Value, " ", "") 'MsgBox Row2 End If Next I 'MsgBox XML2 'MsgBox Row2 XML2 = XML2 & " " & Row2 XML = XML2 & ">" & vbNewLine ActiveSheet.Range("A10").Select Selection.End(xlDown).Select SheetLastRow = ActiveCell.Row ActiveSheet.Range("A10").Select Selection.End(xlToRight).Select SheetLastColumn = ActiveCell.Column For I = 11 To SheetLastRow Row = vbTab & "<BCE:Ctas " For J = 1 To SheetLastColumn ColumnName = Replace(ActiveSheet.Cells(10, J).Value, " ", "") If ColumnName = "SaldoIni" Or ColumnName = "Debe" Or ColumnName = "Haber" Or ColumnName = "SaldoFin" Then 'MsgBox ColumnValue If ActiveSheet.Cells(I, J).Value = "" Or ActiveSheet.Cells(I, J).Value = "0" Then ColumnValue = 0 'MsgBox ColumnValue Else ActiveSheet.Cells(I, J).Value = Format(ActiveSheet.Cells(I, J).Value, "#,###") ColumnValue = ActiveSheet.Cells(I, J).Value End If 'Selection.NumberFormat = "#,###" Else ColumnValue = ActiveSheet.Cells(I, J).Value End If Row = Row & ColumnName & "=" & Chr(34) & ColumnValue & Chr(34) & " " Next J Row = Row & "/>" & vbNewLine XML = XML & Row Next I XML = XML & "</BCE:Balanza>" fileSaveName = Application.GetSaveAsFilename(ActiveSheet.Name, fileFilter:="XML Files (*.xml), *.xml") Open fileSaveName For Output As #1 Print #1, "<?xml version=" & Chr(34) & "1.0" & Chr(34) & " encoding=" & Chr(34) & "UTF-8" & Chr(34) & "?>" Print #1, XML Close #1 ' End Sub
-
「ファイル」→「保存」の順にクリックします。
ファイルをローカル・フォルダに保存して、Microsoft Visual Basicを閉じます。
-
GenerateXMLマクロを選択して、Microsoft Excelの「マクロ」ダイアログ・ボックスに表示される「実行」をクリックします。
-
XMLファイルをローカル・フォルダに保存します。
-
XMLファイルを開き、出力を確認します。