2012-01-13 43 views
6

ユーザーがExcelシート内のセルをクリックした後にダイアログを表示したいとします。 次のようなもの:ダブルクリックの処理後に編集モードを終了/無効にする

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 
    MsgBox "a cell was clicked!", vbOKOnly, "a click" 
End Sub 

これは完璧に機能します。問題は、ダブルクリック編集モードがオンになり、数式が入力されると予想されることです。この動作を無効にするにはどうすればよいですか?

私は純粋な機能性を達成したいと思います: を〜ユーザーがセルをクリック 〜ダイアログが を表示さ〜ユーザーがダイアログを閉じ 〜セルが編集モードに入らない、シートが、それは二重の前に全く同じように見えますクリックイベント。あなたは、引数に与えられた変数とアクションをキャンセルする必要が

答えて

13

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 
    MsgBox "a cell was clicked!", vbOKOnly, "a click" 
    'Disable standard behavior  
    Cancel = True 
End Sub 

ここでは、ダミーの例です:あなたが原因FalseCancelを設定する必要はありません

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 
Dim response As Variant 
response = MsgBox("Are you sure you want to edit the cell?", vbYesNo, "Check") 
If response = vbYes Then 
    Cancel = False 
Else 
    Cancel = True 
End If 
End Sub 

注意それはデフォルト値です(これは目的の例です)。

関連する問題