- ベストアンサー
VBScriptでエクセル VBProject
VBScript から,エクセルファイルを 連続で開いて操作するプログラムを作成しています. プログラムの中で,開いたエクセルファイルのVBProjectがロックされているかを判別 したいのですが,方法はありますでしょうか. VBAでは, .VBProject.Protection が使用可能なのですが,VBSで使用するとエラーになります. ご回答よろしくお願いいたします.
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
VBAで取得出来てるのなら同様にすれば・・・ dim oXL ,i set oXL =createobject("excel.application") oXL.workbooks.open "E:\tmp\マクロあり.xls" With oXL.VBE.VBProjects.Item("VBAProject") With oXL.VBE.ActiveVBProject For i = 1 To .VBComponents.Count wscript.echo .VBComponents(i).Name & " ぷろてくと=" & .Protection Next End With End With てな具合に。
その他の回答 (1)
- watabe007
- ベストアンサー率62% (476/760)
> .VBProject.Protection が使用可能なのですが,VBSで使用するとエラーになります. こんにちは If .VBProject.Protection = vbext_pp_locked Then でエラーになったのでしょうね vbext_pp_locked は、そのままでは使えませんので Const vbext_pp_locked = 1 If .VBProject.Protection = vbext_pp_locked Then MsgBox .Name & "は、保護されています。" Else MsgBox .Name & "は、保護されていません。" End If と値を登録してやれば良いでしょう
お礼
ご回答有難うございます. vbext_pp_locked は,使ってません. .VBProject.Protection ではなく, .VBE.ActiveVBProject.Protection としたら,エラーがなくなりました.
お礼
ご回答ありがとうございます. .VBComponents.Count と .VBComponents(i).Name で,エラーになってしまいましたが, .Protection は,正常に動きました. 求めていた回答を頂き,ありがとうございました.