アプリ版:「スタンプのみでお礼する」機能のリリースについて

全シート保護(保護の解除)のコードなんですが、パスワードを求めない形にするには下記をどうすれば良いのですか?

Sub 全シート保護の設定()
Dim Sh As Worksheet
x = Application.InputBox("パスワードを入力して下さい", Type:=3)
For Each Sh In Worksheets
Sh.Protect (x)
Next Sh
End Sub

Sub 全シート保護の解除()
Dim Sh As Worksheet
On Error GoTo ErLine
Do
x = Application.InputBox("パスワードを入力して下さい", Type:=3)
Loop While x = "False"
For Each Sh In Worksheets
Sh.Unprotect Password:=x
Next Sh
Exit Sub
ErLine:
y% = MsgBox("パスワードが違います ! 終了します", 48)

End Sub

毎度すみませんがよろしくお願いします。

A 回答 (5件)

またまたこんにちは。



>質問文のコードが今あるものなのですが、ようは単純に全シート保護(解除)の際に、パスワードを聞いてこないようにしたいのです。

それはは十二分に分っていますが、VBAの場合はコードのちょっとした部分でも違うと全く違う動作をしてしまいますので、修正したコードをアップしてくださいと言っているのですが・・・。

それと、const x="LINERS" にセットするパスワードは
大文字小文字などちゃんと区別してセットしてますか?
それもアップしたコードで確認したいのです。

尚、言わずもがなのことですが、当方がアップしたコードは完全に動作するものです・・・よ。(^^;;;

以上です。

この回答への補足

VBAって難しいです。有難うございました。

補足日時:2005/06/28 18:35
    • good
    • 0
この回答へのお礼

大変失礼しました。
問題なしです。先ほどの補足は私がおかしなことをしていたためです。
最初のコード(訂正なし)の段階でパスワードは設定していなかったのです。
なのにいただいたコードのほうに素直に"LINERS"と書いてました。すみません。

>尚、言わずもがなのことですが、当方がアップしたコードは完全に動作するものです・・・よ。(^^;;;

完全に動作してます。失礼致しました。

お礼日時:2005/06/28 18:34

再びこんにちは。

NO.3です。

>いただいたコードに変えて実行してみましたら、
「実行時エラー'1004'  入力したパスワードは間違っています

それはメッセージどおりパスワードが間違っています。

解除・設定両方のパスワード用変数宣言の
Const X = "LINERS" の LINERS を
本物のパスワードに変えて実行してますか?

本物のパスワードと
エラーのでるコードをアップしてみて下さい。

いまちょっと暇なので出来るまでお付き合いしませう。(^^;;;

以上です。

この回答への補足

お付き合いいただきすみません。
質問文のコードが今あるものなのですが、ようは単純に全シート保護(解除)の際に、パスワードを聞いてこないようにしたいのです。
超初心者なのでたまにわけのわからないことを言うと思いますがよろしくお願いします。

補足日時:2005/06/28 16:05
    • good
    • 0

こんにちは。



パスワードが、"LINERS" だとして一案。

'----------------------------------------------
Sub 全シート保護の設定()

 Dim Sh As Worksheet

 Const X = "LINERS"

 For Each Sh In Worksheets
   Sh.Protect Password:=X
 Next Sh

End Sub

'---------------------------------------------
Sub 全シート保護の解除()

 Dim Sh As Worksheet

 Const X = "LINERS"

 For Each Sh In Worksheets
   Sh.Unprotect Password:=X
 Next Sh

End Sub
'----------------------------------------------

以上です。
 

この回答への補足

ご回答有難うございます。
いただいたコードに変えて実行してみましたら、
「実行時エラー'1004'  入力したパスワードは間違っています~でデバックを求められてしまいます。

補足日時:2005/06/28 15:32
    • good
    • 0

こんにちわ。



修正前:x = Application.InputBox("パスワードを入力して下さい", Type:=3)

修正後:x = "password"

で、どうでしょうか。
    • good
    • 0
この回答へのお礼

ご回答感謝します。
全シート保護の解除を行い、マクロAを実行し、全シート保護を再び行うようになっています。修正してみましたが、エラーが出ました。保護の解除のほうはどう直せばよいのでしょうか?
有難うございました。

お礼日時:2005/06/28 13:22

InputBoxでパスワードの入力を行わなければいいと思うんですが。

。。その値をXに代入しているのでそのあたりもいらないと思います。
    • good
    • 0
この回答へのお礼

ご回答感謝します。
すみませんVBA超初心者なんです。このコードは自分が作ったわけではなく、わからないままに使用しているのですが、どこで何を宣言しているのかさえわかりません。不必要な部分を削って使えるものなのでしょうか?
ありがとうございました。

お礼日時:2005/06/28 13:19

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