特殊文字は比較出力は、ファイルを比較することはできませんマルチシートページが大きすぎる超えて、システムメモリのターンエクセルTXTスクリプトの問題を超えて解決することはできません
「XLS_to_CSV.vbsは 」 " コンマ区切りのテキストファイルにExcelブックを変換します。Microsoft Excelが必要です。 ' 使用法: ' のWScript XLS_to_CSV.vbs <入力ファイル> <出力ファイル> オプション 明示 ' MsoAutomationSecurity のConst msoAutomationSecurityForceDisable = 3 ' OpenTextFile IOModeに ます。Const ForReading = 1 のConst ForAppending = 8 のConst TristateTrue = - 1 ' XlFileFormat のConst xlCSV = 6 ' カンマ区切り値 のConstxlUnicodeText = 42 " XlSheetVisibility のConst xlSheetVisible = - 1 点心のApp、AutoSec、ドク、FILESYS、AppProtect 設定 FILESYS = のCreateObject(" Scripting.FileSystemObjectオブジェクト" ) の場合 FileSys.FileExists(WScript.Arguments(1))次に FileSys.DeleteFile WScript.Arguments (1 ) 終了 した場合 の設定のApp = のCreateObject(" まずExcel.Application " ) " AppProtect =のCreateObject( "まずExcel.Application")を設定します オン エラー 再開 次 App.DisplayAlerts = Falseの AutoSec = App.AutomationSecurity App.AutomationSecurity = msoAutomationSecurityForceDisable Err.Clear 薄暗いI、J、SHEETNAME、TgtFile、TMPFILE、TmpFilenames()、コンテンツ 設定ドク= App.Workbooks.Open(WScript.Arguments(0)、偽、真) の場合のErr = 0 その後、 I = 0 の場合 J = 1 にDoc.Sheets.Count もし Doc.Sheets(J).Visible = xlSheetVisibleその後、 I = I + 1 エンド 場合は 次 のReDim TmpFilenames - (I 1 ) を設定し TgtFile = FileSys.OpenTextFile(WScript.Arguments(1)、ForAppending、真、TristateTrue) 私は = 0 の場合 J = 1 にDoc.Sheets.Count の場合 Doc.Sheets(J).Visible = xlSheetVisible そして SHEETNAME = Doc.Sheets(J).NAME TgtFile.WriteLine " "" SHEET "&SHEETNAME&" "" " Doc.Sheets(J).Activate TmpFilenames(I) = FileSys.GetSpecialFolder(2)&" \ "&FileSys.GetTempName Doc.SaveAs TmpFilenames(I)、xlUnicodeText 設定 TMPFILE = FileSys.OpenTextFile(TmpFilenames(I)、ForReading、偽、TristateTrue) 「ファイル全体を書き込むための書き込みは、ファイル全体の書き込みエラーは、すべてのコンテンツの喪失、その進歩的な方法の使用につながることができます。 「また、メモリ不足ファイルの問題が大きすぎる防ぐことができます しばらく ないTmpFile.AtEndOfStream TgtFile.WriteLine TmpFile.ReadLine Wendの 」TgtFile.Write TmpFile.ReadAll TmpFile.Closeを もし I <> UBound関数(TmpFilenames)次に TgtFile.WriteLine 終了 する場合 Doc.Sheets(J).NAME = SHEETNAME I = I + 1 エンド 場合 次 TgtFile.Closeが Doc.Close Falseの 終了を した場合 App.AutomationSecurity = AutoSec App.Quit セットアプリ= 何も のために I = 0 に UBound関数(TmpFilenames) もし FileSys.FileExists(TmpFilenames(I))次に、 TmpFilenames FileSys.DeleteFile(I) 終了 した場合 次 WScript.Sleep(1000年) " 、この操作は、ウィンドウを閉じるには失敗しますが、手動でオフに設定する前にさらされているエラー履歴書上で無視され、次のキャプチャする必要があります App.Visible = trueに 「次にAppProtect.Workbooks.Count = 0の場合は 」 「保護プロセスだけで、ユーザーが使用している可能性がある終了することはできません 」 AppProtect.Quit 「もしエンド 」trueに= AppProtect.Visibleを 「設定AppProtect =何も
「XLS_to_CSV.vbs」」は、カンマ区切りのテキストファイルにExcelブックを変換します。Microsoft Excelが必要です。」用法:」のWScript XLS_to_CSV.vbs <入力ファイル> <出力ファイル>
明示的なオプション
'MsoAutomationSecurityConst msoAutomationSecurityForceDisable = 3' OpenTextFile iomodeConst ForReading = 1Const ForAppending = 8Const TristateTrue = -1 'XlFileFormatConst xlCSV = 6'カンマ区切りvaluesConst xlUnicodeText = 42' XlSheetVisibilityConst xlSheetVisible = -1
点心のApp、AutoSec、ドク、FILESYS、AppProtectSet FILESYS =のCreateObject( "Scripting.FileSystemObjectオブジェクト")FileSys.FileExists(WScript.Arguments(1))ThenFileSys.DeleteFile WScript.Arguments(1)エンドIfSETをアプリケーション= CreateObjectの場合は( "まずExcel.Application") 'を設定しAppProtect =のCreateObject( "エクセル。
App.DisplayAlerts = FalseAutoSec = App.AutomationSecurityApp.AutomationSecurity = msoAutomationSecurityForceDisableErr.Clear
Err = 0テーニ= 0For J = 1場合Doc.SheetsにI、J、SHEETNAME、TgtFile、TMPFILE、TmpFilenames()、ContentSetドク= App.Workbooks.Open(WScript.Arguments(0)、FALSE、TRUE)薄暗いです。 COUNTIF Doc.Sheets(J).Visible = xlSheetVisibleテーニ=私は1End IfNextReDim TmpFilenamesを+(I - 1)を設定しTgtFile = FileSys.OpenTextFile(WScript.Arguments(1)、ForAppending TristateTrue、TRUE)にI = 0For J = 1 Doc.Sheets(J).Visible = xlSheetVisible ThenSheetName = Doc.Sheets(J).NameTgtFile.WriteLine "" "SHEET" &SHEETNAME& "" "" Doc.Sheets(J).ActivateTmpFilenames(I)Doc.Sheets.CountIf = FileSys.GetSpecialFolder(2)& "\" &FileSys.GetTempNameDoc.SaveAs TmpFilenames(I)、xlUnicodeTextSet TMPFILE = FileSys.OpenTextFile(TmpFilenames(I)、ForReading、偽、TristateTrue)「写失败会、写整个文件的话書きます导致整个文件所有内容丢失、所以采用逐行方式「。メモリ不足ファイルの問題を防止することができるが大きすぎるしばらくないTmpFile.AtEndOfStream TgtFile.WriteLine TmpFile.ReadLine Wendの「TgtFile.Write TmpFile.ReadAllTmpFile.CloseIf I <> UBound関数(TmpFilenames)ThenTgtFile.WriteLineEnd IfDoc.Sheets(J).nameの= SheetNameI =私は場合1End IfNextTgtFile.CloseDoc.Close FalseEndを+
何もない= AutoSecApp.QuitSetのApp = App.AutomationSecurity
UBound関数にI = 0(TmpFilenames)もしFileSys.FileExists(TmpFilenames(I))ThenFileSys.DeleteFile TmpFilenames(I)終了IfNextについては
WScript.Sleep(1000)
「この操作のために、閉じるマニュアルの隙間にさらさ前面のウィンドウを設定することができなかった、真のオンエラー再開の上に次のキャプチャする必要があります= App.Visibleを無視
「= 0そして、もしAppProtect.Workbooks.Count」「保護プロセスは、単に、ユーザーを終了することはできません「AppProtect.Quit'End If'AppProtect.Visible = true'Set AppProtect = Nothingを使用しないかもしれません