[[20170529154646]] 『ボタン1つでシート保護と解除を繰り返すVBA』(田中) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『ボタン1つでシート保護と解除を繰り返すVBA』(田中)

タイトルのようなマクロはありますか??

< 使用 Excel:Excel2016、使用 OS:Windows10 >


たぶん一つは無理と思う

Sub テスト()

    Dim sheet1 As Worksheet

    Set sheet1 = Worksheets("Sheet1")
    sheet1.Protect Password:="pass", _
        AllowFormattingCells:=True

End Sub

Sub テスト()

    Dim sheet1 As Worksheet

    Set sheet1 = Worksheets("Sheet1")
    sheet1.Unprotect Password:="pass"

  End Sub  
(11) 2017/05/29(月) 16:01

IfとProtectContentsで保護が掛かってるかどうか調べて掛かってれば解除、掛かってなければ保護とかで出来るんじゃないですか?
(V) 2017/05/29(月) 16:08

V様
そうですね
IF使えば いけますね

言われて見ればっ手感じですね
有難う御座います
(11) 2017/05/29(月) 16:11


Sub テスト()

    If ActiveSheet.ProtectContents = True Then

        MsgBox "保護されています。"

    Else

        MsgBox "保護されていません。"

    End If

End Sub

こんな感じですかね
(11) 2017/05/29(月) 16:19


 11さん

 ですね。あとはメッセージボックスのところにActiveSheet.Protect/Unprotectを入れるだけなんで
 質問者様自身で出来るかと思います。
 押したときの状態がわかるようにメッセージボックスは残しておいたほうがいいかもしれませんね。
 もしくはボタンのキャプションを変更するとか。

 因みに

 >>If ActiveSheet.ProtectContents = True Then
 >>    MsgBox "保護されています。"
 >>Else
 >>    MsgBox "保護されていません。"
 >>End If

 この並びなら= Trueは以下のように省略して構いません。でもちゃんと明示してあげるのはいいことだと思います。

 If ActiveSheet.ProtectContents Then
     MsgBox "保護されています。"
 Else
     MsgBox "保護されていません。"
 End If

※横長だったんで修正しました。
(V) 2017/05/29(月) 16:35


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.