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

VBA初心者ですが、宜しくお願いします。
ver:Office 2000

新しいパスワードをつけるマクロを実行すると「実行時エラー438
オブジェクトは、このプロパティまたはメソッドをサポートしていません」となります。

ソースはここです↓
ActiveWorkbook.Password = "TEST"

ほかの端末(office2003)では実行できるのに何故でしょうか

A 回答 (3件)

Excel2002以降は保存時とパスワードのみの設定の2通りの設定方法があるようですが、Excel2000では保存時にしかパスワードが設定できないようです。


そのため
ActiveWorkbook.Password = "TEST"
は2000ではエラーになるようです。
2000の場合は、例えば
ActiveWorkbook.SaveAs Filename:="C:\Book1.xls", Password:="TEST"
とすれば設定できるようです。
    • good
    • 0
この回答へのお礼

hotosys様ご回答ありがとうございます
imogasi様に返信したあとにhotosys様のほうを実行してみたら
同じようにできました!
ごめんなさい、見逃しておりました。
上のソースより短くできるhotosys様のほうを採用させていただきます。
ご教授ありがとうございました。

お礼日時:2009/05/06 22:49

WEBを照会すると


http://www.kotaete-net.net/Default.aspx?pgid=14& …
という、同じ質問が出ている。バージョンも2000の場合らしい。
回答は十分納得できないが、(ありえないと思うが)ひょっとすると2000が?
2002ではうまく行くようです。
    • good
    • 0
この回答へのお礼

imogasi様ご回答ありがとうございます。
リンクを参照させていただきましたら
同じ現象のようです。。。
リンク先の回答もいまいちでしたので
このソース(ActiveWorkbook.Protect Password:=NewPassword)を
下記のように変えてみました。

ActiveWorkbook.SaveAs Filename:= _
myFilename, FileFormat:= _
xlNormal, Password:=NewPassword, WriteResPassword:="", ReadOnlyRecommended _
:=False, CreateBackup:=False

ActiveWorkbook.Save
Application.DisplayAlerts = False 'メッセージを出さない
ActiveWorkbook.Close
myFilename = Dir()
少し長くなってしまいましたが、やりたいことができました。
ありがとうございました。

お礼日時:2009/05/06 22:45

>ソースはここです↓


>ActiveWorkbook.Password = "TEST"
>ほかの端末(office2003)では実行できるのに何故でしょうか

それは勘違いでしょう。
2000でも同じで、Passwordというメソッドはありません。
PasswordはProtectメッソドの引数のひとつです。

で、以下のように。

ActiveWorkbook.Protect Password:="TEST"

  
    • good
    • 1
この回答へのお礼

myRange様
ご回答ありがとうございます。
しかし、なぜか新しいパスワードの"TEST"になりませんでした。
もう少しひねってみます

お礼日時:2009/05/06 22:40

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