dポイントプレゼントキャンペーン実施中!

VBScript から,エクセルファイルを 連続で開いて操作するプログラムを作成しています.
プログラムの中で,開いたエクセルファイルのVBProjectがロックされているかを判別
したいのですが,方法はありますでしょうか.
VBAでは, .VBProject.Protection が使用可能なのですが,VBSで使用するとエラーになります.
ご回答よろしくお願いいたします.

A 回答 (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

てな具合に。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます.
.VBComponents.Count と .VBComponents(i).Name
で,エラーになってしまいましたが,
.Protection は,正常に動きました.
求めていた回答を頂き,ありがとうございました.

お礼日時:2013/08/02 17:02

> .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

と値を登録してやれば良いでしょう
    • good
    • 0
この回答へのお礼

ご回答有難うございます.
vbext_pp_locked は,使ってません.

.VBProject.Protection
ではなく,
.VBE.ActiveVBProject.Protection
としたら,エラーがなくなりました.

お礼日時:2013/08/02 17:09

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!