スクリプト
OpenxlWorkBooks.VBS
Option Explicit
'Excel 2013 Later Japenese Version Available
'REF:
'REF:
'''///---定数の設定Set Enumuragion---///'''
Const PWD="PASS"
Const msoLanguageIDInstall = 1
'''///---変数の宣言---///'''
Dim objArgs, I , strFile
Dim objFile, objFolder,objPath,strScr
Dim xlApp,Wb
Dim objWShell : Set objWShell = Createobject("WScript.Shell")
Dim FSO : Set FSO = Createobject("Scripting.FileSystemObject")
'''///---ファイル処理開始 Start Document File Conversion---///'''
Set objArgs = Wscript.Arguments
For I = 0 to objArgs.Count-1
set objFile = FSO.GetFile(cstr(objArgs(I)))
If Lcase(Left(FSO.GetExtensionName(objFile.Path) ,3) )="xls" Then
Set xlApp =CreateObject("Excel.Application")
If xlApp.Version < 14 Then xlApp.Quit: Set xlApp = Nothing:wscript.Quit
xlApp.DisplayAlerts=False
xlApp.Visible = True
set wb=xlapp.WorkBooks.Open(objFile.Path,0,false,,PWd,,True,,false,false,,true,true)
if wb.HasPassword=true then
wb.Saveas objFile.Path,,"","",False
else
wb.Saveas objFile.Path,,Pwd,"",False
End if
wb.close
set wb=nothing
End If
Next
xlApp.DisplayAlerts=True
xlApp.Quit
set xlApp = Nothing
注意点
- VBS Wordファイルのパスワードを解除し、パスワードがなければパスワードをかけるもあるのでExcel版を作りました。
- 定数Pwdに定めたパスワードで開き、パスワードがかかっていない場合はPWdで決まったパスワードをかけます。
- 読み取り専用推奨などもキャンセルして解除します。
- 書き込みパスワードはナシの前提です。必要なときは改造してください。
- Excel2013以降で作動します。
閉じたExcelのパスワードを判定する
閉じているエクセルファイルがパスワードで保護されているか、を見分ける関数
本当はこれをVBSにしたかったけどちょっと複雑なので手を抜きました。