限定しりとり

'UserForm1
Public 着目シート名 
Public シート変更禁止 As Boolean

Private Sub CommandButton1_Click()
着目シート名 = "Sheet1"
シート変更禁止 = True
End Sub

Private Sub CommandButton2_Click()
着目シート名 = "Sheet2"
シート変更禁止 = True
End Sub

'ThisWorkbook
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
If シート移動禁止 = True Then
Worksheets(着目シート名).Activate
End If
End Sub

'標準モジュール
Sub test()
UserForm1.Show
End Sub

'UserForm1には、CommandButton1,CommandButton2のみ貼り付けています。
'フォームは、ShwoModal=Falseにしています
それぞれのモジュールに上記のコードを書いて、フォーム上のボタンを押すと、
シートの変更が出来ないようにしようと考えています。
シートは、任意に変更しようと考えていますので、シート名の指定に変数を使いたいのですが、スコープの問題からか?
着目シート名がEmpteyになってしまい、自由に変更が可能となってしまいます。
何が、悪いのでしょうか?
どなたか詳しい方教えて頂けないでしょうか?宜しくお願いいたします。
(Workbook_SheetDeactivateによる方法は、ここで教えて頂いた方法をアレンジしようとしている部分です。)
QNo.2503758の続きの質問です。

A 回答 (1件)

こんばんは。



Public 着目シート名 
Public シート変更禁止 As Boolean

これはUserFormではなくて、標準モジュールに置かなくてはダメです。

それから、
If シート移動禁止 = True Then
この変数、シート「移動」禁止、は、シート「変更」禁止、ですよね?
タイプミスだろうと思いますが・・・(^^;;
 
以上です。
 

この回答への補足

早速の回答有難う御座います。
確かに、タイプみすです。
もともVBE上では、移動禁止としていたのですが、この書込みを書いている時に、メモ帳上で、変更に変えたので、見落としていました。
Publicは、標準モジュールのみ有効なのでしょうか?
重ね重ね教えて頂けないでしょうか?
宜しくお願いします。

補足日時:2006/11/01 22:11
    • good
    • 0
この回答へのお礼

ありがとうございました。
その後、色々本を読んで見ました。今後とも宜しくお願いいたします。

お礼日時:2006/11/02 08:33

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