Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


3530 / 13644 ツリー ←次へ | 前へ→

【61586】ダブルクリックイベント さちこ 09/5/21(木) 10:46 質問[未読]
【61588】Re:ダブルクリックイベント つん 09/5/21(木) 11:18 回答[未読]
【61592】あ、すんません^^; つん 09/5/21(木) 13:00 発言[未読]
【61591】Re:ダブルクリックイベント kanabun 09/5/21(木) 12:46 発言[未読]
【61594】Re:ダブルクリックイベント さちこ 09/5/21(木) 14:56 お礼[未読]

【61586】ダブルクリックイベント
質問  さちこ  - 09/5/21(木) 10:46 -

引用なし
パスワード
   ウインドウスXP、エクセル2003を使用しています。
ワークシートのダブルクリックイベントで、
下記のようなコードを使って、ダブルクリックしたセルに○が付くようにしています。

このとき、特定のセルだけ、ダブルクリックしたとに、
○が付くようにしたいのですが、
 Cancel = Trueの前に、どのようなコードを書けばよいでしょうか。
例えば、A3と、B5のセルでだけで実行したいのです。
他のセルでダブルクリックしても、○が付かないようにしたいのです。
どうぞよろしくお願い致します。


===============================

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
 Dim c As Range


 Cancel = True
 With Target
   Me.Shapes.AddShape(msoShapeOval, .Left, .Top, .Width, .Height).Fill.Visible = False
 End With
End Sub

【61588】Re:ダブルクリックイベント
回答  つん  - 09/5/21(木) 11:18 -

引用なし
パスワード
   ▼さちこ さん
こんにちは^^

> Cancel = Trueの前に、どのようなコードを書けばよいでしょうか。

Cancel = True は、その処理を無効にする処理じゃなくて、
「編集モード」になることを無効にしているようです。
(試したところ・・・)

ということで、

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

 If Target.Address(0, 0) = "A3" Or Target.Address(0, 0) = "B5" Then
  Cancel = True
  Exit Sub
 End If
 
 With Target
   Me.Shapes.AddShape(msoShapeOval, .Left, .Top, .Width, .Height).Fill.Visible = False
 End With
 
 Cancel = True
End Sub

かなあ・・・

ただ、↑のように「A3」か「B5」の時は円を描かない→それ以外は円を描く・・という処理より、
「A3」でもなく「B5」でもない時に円を描く処理をする・・・の方がすっきりするかもです^^

【61591】Re:ダブルクリックイベント
発言  kanabun  - 09/5/21(木) 12:46 -

引用なし
パスワード
   ▼さちこ さん:

おじゃまします。

>このとき、特定のセルだけ、ダブルクリックしたときに、
>○が付くようにしたいのですが、
> Cancel = Trueの前に、どのようなコードを書けばよいでしょうか。

こんな風でどうでしょう?
>Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
> Dim c As Range
 Set c = Intersect(Target, Me.Range("A3,B5,C7,D9"))
 If c Is Nothing Then Exit Sub

> Cancel = True
> With Target
>   Me.Shapes.AddShape( _
>    msoShapeOval, .Left, .Top, .Width, .Height).Fill.Visible = False
> End With
>End Sub

【61592】あ、すんません^^;
発言  つん  - 09/5/21(木) 13:00 -

引用なし
パスワード
   逆だった^^;
「A3」と「B5」をダブルクリックした時だけ円を描きたいんですね^^;
失礼しました。

【61594】Re:ダブルクリックイベント
お礼  さちこ  - 09/5/21(木) 14:56 -

引用なし
パスワード
   つんさん
kanabun さん:

解決できました。ありがとうございました。
まだまだ勉強不足ですね。
また、これからもよろしくお願い致します。

3530 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free