2017-11-30 54 views
4

ダブルクリックしないでをクリックするとワークシートを保護しないExcel 2010でマクロを作成しようとしています逆に、他の場所をクリックすると、ワークシートを保護したいと考えています。Excel VBA - セル選択のワークシートの保護を解除します(ダブルクリックしないでください)

申し訳ありませんが、私はVBAの専門家ではありません。

私はこのコードを思い付いた:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 
    If Not Intersect(Target, Range("E9:E22,I9:I21,N9:N20,Q9:Q14")) Is Nothing Then 

     ActiveSheet.Unprotect Password:="abc" 

    ElseIf Intersect(Target, Range("E9:E22,I9:I21,N9:N20,Q9:Q14")) Is Nothing Then 

     ActiveSheet.Protect _ 
     Password:="abc", _ 
     UserInterfaceOnly:=True, _ 
     AllowFiltering:=True, _ 
     AllowSorting:=True, _ 
     AllowUsingPivotTables:=True 

    End If 
End Sub 

このコードは完全に明らかに、私はセルをダブルクリックし、場合取り組んでいるが、唯一の私ならば、それが動作するようにするどのような方法がある場合、私は思っていましたセルを選択(ワンクリック)しますか?

Targetの代わりにActiveCellを使用しようとしましたが、成功しませんでした。

これはあなたのためです 、非常に多くのステファノ

+5

'Private Sub Worksheet_SelectionChange(ByVal Target as Range)' –

+1

'BeforeSingleClick'イベントはありません。あなたが' SelectionChange'でOKなら、あなたの選択です。クリックするだけでいいなら、API経由で 'WM_LBUTTONDOWN'をトラップするオプションがあります。だから、最初のオプションでOKにする方が良いです。 – CommonSense

+0

Scottさんと感謝しています。CommonSense、 'SelectionChange'は私のニーズに完全に適しています。 – aragornii

答えて

2

ありがとうBeforeDoubleClickイベントを使用しています。 代わりにWorksheet_SelectionChangeをお試しください。

関連する問題