2016-07-25 7 views
0

保護されたビューで開く一連のExcelファイルがあります。これらのExcelファイルを開き、保護されたビューを削除し、タブ区切りのテキストファイルとして保存したいと思います。これまでのところ、私はすべてを行うことができましたが、スクリプトを実行すると、Excelファイルを保存するかどうかを尋ねるプロンプトが表示されます。私はスクリプトを完全に自動化するために、このプロンプトを取り除きたい。ここでは、現在のコードは次のとおりです。vbsスクリプトで保護されたビュー

format = -4158 

Set objFSO = CreateObject("Scripting.FileSystemObject") 

src_file = objFSO.GetAbsolutePathName(Wscript.Arguments.Item(0)) 
dest_file = objFSO.GetAbsolutePathName(WScript.Arguments.Item(1)) 

Dim oExcel 
Set oExcel = CreateObject("Excel.Application") 

oExcel.ProtectedViewWindows.Open(src_file) 
oExcel.ActiveProtectedViewWindow.Edit 
oExcel.Quit 

Dim oBook 
Set oBook = oExcel.Workbooks.Open(src_file) 
oBook.Worksheets(5).Activate 

oBook.SaveAs dest_file, format 

oBook.Close False 

oExcel.Quit 

私はプロンプトオンラインを除去する解決策を発見したが、私は保護されたビューウィンドウを編集する必要があるため、私は解決策を使用する方法を見つけることができませんでした。このVBスクリプトで保護されたビューが削除され、Excelファイルがタブ区切りのテキストファイルとして保存されるようにするにはどうすればよいですか?これは、ウィンドウやプロンプトを表示せずに行う必要があります。つまり、自動的に行う必要があります。

答えて

0

単にExcelが、それはこのようなものです一般的にメッセージボックスを無視しました:右のどの部分後

oExcel.DisplayAlerts = False 
'your code here to close workbook 
oExcel.DisplayAlerts = True 
+0

?あなたは完全な自動化を求めているので、偽のステートメントでスクリプトを開始し、真のステートメントを最後の終了ステートメントの直前に置くことができます。 – Jason

+0

私はoExcelを初期化した後にこれを配置しました。しかし、今では奇妙なことが多発しています。私は、2013年のExcelの両方で、2つの異なるコンピュータでこれを試しています。あるコンピュータでプロンプトが表示されず、「サーバーが例外をスローしました」というエラーが表示され、続いてExcelがクラッシュします。別のコンピュータでは、プロンプトが表示され、何も変わりません。しかし、数回、プロンプトは表示されませんでしたが、何も起こりません!それから私は "呼び出し先によって拒否された呼び出し"と言うエラーを受け取ります。 – Dillydill123

+0

には、oExcelオブジェクトをoExcel.Quitを初めて呼び出す前に保存する方法がありますか? – Dillydill123

関連する問題