1

シート内のすべてのセルをロックするコードを探していましたが、次のコードが見つかりました。

Worksheets("SW").Range("D2").Locked = False
Worksheets("SW").Protect UserInterfaceOnly:=True

保存してファイルを再度閉じて開くまで、実際に正常に機能し、その後、持っていたマクロが実行されました。

そのシートにはさまざまなマクロがあり、セルが変更されたときに実行されるマクロもあるからだと思います。

Private Sub Worksheet_Change(ByVal Target As Range)

それを機能させる方法はありますか?

もう1つ、このワークブックは共有されるため、マクロに影響するかどうかはわかりません。

すみません、あいまいすぎたかもしれません。

はい、他の人がセルの値を変更できないようにしたいです。

1 つのセルだけを変更して、他のすべてのセルをマクロで変更できるようにしたいと考えています。

あなたのご親切に感謝します

PS: はい、Ahmad Al-Mutawa さん、プロジェクトを保存、閉じ、開いた後でも、シートを変更できないようにしたいと考えています。

さらに詳しい情報が必要な場合は、より具体的にお伝えします。

4

1 に答える 1

0

あなたのファイルには、あなたが達成しようとしているこのロックロック解除コード以外の操作を行うマクロがありますか?

もしそうなら、私はあなたがvbaにコードを持っていることを提案します。それ以外の場合は、シートをロックするだけで、ユーザーがコードなしで何かを変更したり、いつでも変更したりできないようにすることができます。

これは[コード][1]よりも良いと思いますか?

[ http://office.microsoft.com/en-us/excel-help/lock-or-unlock-specific-areas-of-a-protected-worksheet-HA010096837.aspx ] [1]

好奇心から:このコードピースをどこでどのようにトリガーするかわからないという問題がありますか?

編集されたコード:- あなたのコメントは明確ではありませんが、それでもあなたはマクロを使いたいと思います。Sheet1を保護/ロックまたは保護解除/ロック解除する場合は、次のことを試してください。:-

このワークブックのワークブックオープンイベントにこのコードを追加します:-

Private Sub Workbook_Open()
  Dim shtSheet As Worksheet
  Dim strPassword As String

    strPassword = "stack"
    Set shtSheet = Worksheets("Sheet1")
    shtSheet.Protect Password:=strPassword, UserInterfaceOnly:=True
End Sub

次に、モジュールに以下を追加します。マクロの実行が終了したら、それを呼び出します。

 Sub ProtectSheet()
  Dim shtSheet As Worksheet
  Dim strPassword As String

     strPassword = "stack"
     Set shtSheet = Worksheets("Sheet1")
     shtSheet.Protect strPassword
 End Sub
于 2012-11-08T11:34:11.983 に答える