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

VBA勉強中の初心者です。よろしくお願いします。
(Excel2000使用)

シートの保護と解除をボタン1つで押すたびに交互に出来るようにしたいです。

今は、保護と解除の2つのボタンを作り、VBAを登録して使っているのですが、場所の都合でそれを1つのボタンでON/OFFみたいな感じで出来ればと思います。

なにぶんにも初心者で、VBAも自動記録に毛の生えた程度の知識しかありません。
トグルボタンの存在は知っていますが、構文の作り方がまるで判りません。

お知恵下さい。よろしくお願いします。

A 回答 (3件)

fuji39さん、Wendy02です。



>下から2行目の"CommandButton1"を"ToggleButton1"に変えたら動いたのですが、これでよろしかったでしょうか?

すみません。おっしゃるとおりです。元は、CommandButton1 から作ったので、自分の方は直したのに、アップロード・ログは直しませんでした。

色は、このようにしてつけます。思っている色と、若干違うのは、トグルボタンのせいだと思います。色をつけるなら、CommandButton でもよいかもしれませんね。


Private Sub ToggleButton1_Click()
 If ProtectContents Then
   ActiveSheet.Unprotect
 Else
   ActiveSheet.Protect , UserInterfaceOnly:=True
 End If
 With ToggleButton1
 If ProtectContents Then
   .Caption = "Lock"
   .BackColor = vbRed 'ロック
 Else
   .Caption = "UnLock"
   .BackColor = vbBlue 'アンロック
 End If
 End With
End Sub


もしも、自分の思った色が違うなって思ったら、プロパティのBackColor から色を選んで、そこに出てきた16進の数字を、コピーして、コード上に貼り付けてください。vbRed, vbBlue は、組み込み定数です。

例:

 .BackColor = &HFF&
    • good
    • 0
この回答へのお礼

再度のご返事ありがとうございます。
おかげさまで、思うように仕上る事が出来ました。
お礼が遅くなり、申し訳ありませんでした。

お礼日時:2005/12/19 10:11

こんばんは。



通常、トグルボタンもコマンドボタンも同じです。
なお、ActiveSheetは、本来は、シート名を入れたほうがよいです。

Private Sub ToggleButton1_Click()
 If ProtectContents Then
   ActiveSheet.Unprotect
 Else
   ActiveSheet.Protect
 End If
 CommandButton1.Caption = Choose(CInt(ProtectContents) + 2, "Lock", "UnLock")
End Sub

この回答への補足

頼みついでに申し訳ありませんが、追加でご質問させて下さい。
ボタン上の文字を"Lock"の時は赤色、"Unlock"の時は青色にしたいのですけれど、どうしたらよろしいでしょうか?
何卒ご教示下さい。
よろしくお願いします。

補足日時:2005/12/03 13:02
    • good
    • 1
この回答へのお礼

ありがとうございます。
最初は動きませんでしたが、下から2行目の"CommandButton1"を"ToggleButton1"に変えたら動いたのですが、これでよろしかったでしょうか?
感謝致します。

お礼日時:2005/12/03 13:01

こんなのはいかがでしょうか?


マクロで適当に記述しただけですが・・・。

Private Sub CommandButton1_Click()
If Worksheets("Sheet1").ProtectContents = False Then
ActiveSheet.Protect DrawingObjects:=True, Contents:=True,Scenarios:=True
Else
ActiveSheet.Unprotect
End If
End Sub
    • good
    • 0
この回答へのお礼

ありがとうございます。
大変参考になりました。
早速使います。

お礼日時:2005/12/03 12:58

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

このQ&Aを見た人はこんなQ&Aも見ています