Quantcast
Channel: Windows Server 2008 フォーラム
Viewing all articles
Browse latest Browse all 1459

VBScriptによるEXCEL起動について

$
0
0

VBScriptについて質問させていただきます。

VBScriptにて、EXCELファイルを開いてパスワードを付加して保存し直す処理を行っているのですが、
処理を記述しているvbsファイルを配置/実行しているサーバ(Windows Server 2008 R1)を
再起動すると、最初の1回だけVBScriptが正常に実行されません。
エラーとして処理が終了することもない為、原因がわかりません。
(コマンドで実行してExcel.Applicationでオブジェクトがありません。のエラーとなる場合がありましたが、
なぜオブジェクトがないのかわかりません※上記同様、再起動後の最初の1回だけ)

原因がおわかりになる方がいらっしゃいましたら、御教授願います。

なお、EXCELが1度でも起動していると正常にパスワードの付加ができるようになります。

vbsファイル-----------------------------------------------------------
Dim ret, fso, folder, objXL

' 引数のチェック
If WScript.Arguments.Count <> 2 Then
 WScript.Quit(1)
End If

' FileSystemObjectの初期化
Set fso = WScript.CreateObject("Scripting.FileSystemObject")

' 引数で指定されたフォルダ有無チェック
If Not fso.FolderExists(WScript.Arguments(0)) Then
 Set fso = Nothing
 WScript.Quit(1)
End If
Set folder = fso.GetFolder(WScript.Arguments(0))

' Excelアプリケーションの初期化
Set objXL = WScript.CreateObject("Excel.Application")

' メイン処理の呼び出し
ret = Main(objXL, folder, WScript.Arguments(1))

' 終了処理
Set fso = Nothing
Call objXL.Quit()
Set objXL = Nothing

WScript.Quit(ret)

Private Function Main(objXL, folder, password)
 Dim objWB, file

 On Error Resume Next
 ' 画面描画・警告の抑止
 objXL.ScreenUpdating = False
 objXL.DisplayAlerts = False
 ' フォルダ内の全てのファイルに対してパスワード設定
 For each file in folder.Files
  Set objWB = objXL.WorkBooks.Open(file.Path, , , , password)
  If Err.Number <> 0 Then
   If Not objWB Is Nothing Then
    Call objWB.Close()
    Set objWB = Nothing
   End If
   Main = 1
   Exit Function
  End If
  Call objWB.SaveAs(file.Path, , password)
  If Err.Number <> 0 Then
   If Not objWB Is Nothing Then
    Call objWB.Close()
    Set objWB = Nothing
   End If
   Main = 1
   Exit Function
  End If
  objWB.Saved = True
  Call objWB.Close()
  Set objWB = Nothing
 Next
 ' 画面描画・警告の開放
 objXL.DisplayAlerts = True
 objXL.ScreenUpdating = True
 Main = 0
End Function
ここまで-----------------------------------------------------------

以上


Viewing all articles
Browse latest Browse all 1459

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>