こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

ダブルクリック 条件 分岐 

こんばんは
VBAの勉強をはじめたばかりの素人です。
いろいろ調べたのですが自分の学習不足もあってかなかなか
回答に結びつかなかったので質問させてください。

シートの("A:A")をダブルクリックしたらフォーム1を表示する
シートの("B:B")をダブルクリックしたらフォーム2を表示する
シートの("C:C")をダブルクリックしたらフォーム3を表示する

といった簡単なイベントなのですがうまくできません。

'-----------------------------------------------
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If ActiveCell.Address = ("A:A") Then
1.Show
ElseIf ActiveCell.Address = ("B:B") Then
2.Show
ElseIf ActiveCell.Address = ("C:C") Then
3.Show
End If
End Sub
'-----------------------------------------------
又は
'-----------------------------------------------
Private Sub Workbook_Open()
ActiveWorkbook.Worksheets("Sheet1").OnDoubleClick = "Test"
End Sub

Public Sub Test()
A列 = 1
B列 = 2
C列 = 3
現在位置列 = ActiveCell.Column
現在位置行 = ActiveCell.Row
Select Case ActiveCell.Address
Case 現在位置列 = A列
1.Show
Case 現在位置列 = B列
2.Show
Case 現在位置列 = C列
3.Show
End Select
End Sub

'-----------------------------------------------

などがが今の私ができる最大限の内容ですが、全く違うようです。
素人質問で大変申し訳ありません。
勘違いが多々あるかもしれませんが教えてください。
以上宜しくお願いいたします。

投稿日時 - 2008-06-25 21:30:46

QNo.4129145

困ってます

質問者が選んだベストアンサー

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


If Not Intersect(Range("a:a"), Target) Is Nothing Then
UserForm1.Show
End If

If Not Intersect(Range("b:b"), Target) Is Nothing Then
UserForm2.Show
End If

If Not Intersect(Range("c:c"), Target) Is Nothing Then
UserForm3.Show
End If

End Sub

でどうでしょうか。

投稿日時 - 2008-06-25 22:38:45

お礼

早速の回答ありがとうございました。
If Intersect(Target, Range("A:A")) Is Nothing Then
の方法は試したのですが一つの条件でしか実行できなかった為に
あきらめて他の方法を模索していました...............。
(イベントの書き方がおかしかったのかも...勉強不足です)

keirika さんの ”Not Intersect”で見事にできました。
次のステップに進めそうです。
本当にありがとうございました。

投稿日時 - 2008-06-25 23:01:17

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

TargetのColumnプロパティで列番号が取得可能ですよ
A列なら1、B列なら2、C列なら3になります

またダブルクリックイベントなので 複数のセル(列または行)が選択されているとは思えません
Intersectを使うまでも無いように思います

投稿日時 - 2008-06-26 06:29:15

お礼

redfox63 さんありがとうございました。

”TargetのColumn プロパティ”ですね。
勉強してみます。

壁にブチあたったらまた質問させていただきます。
よろしくお願いします。

投稿日時 - 2008-06-26 22:20:57

あなたにオススメの質問