Excel VBA質問箱 IV

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

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


2840 / 13646 ツリー ←次へ | 前へ→

【65667】フォームの表示 あるぱか 10/6/19(土) 18:51 質問[未読]
【65668】Re:フォームの表示 かみちゃん 10/6/19(土) 19:21 発言[未読]
【65669】Re:フォームの表示 あるぱか 10/6/19(土) 20:45 回答[未読]
【65670】Re:フォームの表示 芋洗い二級 10/6/19(土) 22:28 発言[未読]
【65671】Re:フォームの表示 あるぱか 10/6/20(日) 20:33 質問[未読]
【65672】Re:フォームの表示 かみちゃん 10/6/20(日) 21:32 発言[未読]
【65673】Re:フォームの表示 あるぱか 10/6/20(日) 22:25 発言[未読]
【65674】Re:フォームの表示 かみちゃん 10/6/20(日) 22:36 発言[未読]
【65675】Re:フォームの表示 あるぱか 10/6/20(日) 22:39 お礼[未読]

【65667】フォームの表示
質問  あるぱか  - 10/6/19(土) 18:51 -

引用なし
パスワード
   指定したセルにユーザーフォーム表示させるコードを作ることができたのですが
指定以外のセルをダブルリックした時もう一個フォーム表示させたいのです
コードはこんな感じです
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
 If Target.Row Mod 4 <> 1 Then Exit Sub
 If Intersect(Target, Columns("A:F")) Is Nothing Then Exit Sub
  UserForm1.Show
 Cancel = True
End Sub
たぶんどかに、Elseを使うと思うのですがうまくいきません…
教えてください。

【65668】Re:フォームの表示
発言  かみちゃん  - 10/6/19(土) 19:21 -

引用なし
パスワード
   こんにち。かみちゃん です。

>指定以外のセルをダブルリックした時もう一個フォーム表示させたい

指定以外のセルをダブルクリックしたときは、全部で2個フォームを表示させたいということですか?

【65669】Re:フォームの表示
回答  あるぱか  - 10/6/19(土) 20:45 -

引用なし
パスワード
   ▼かみちゃん さん:
>こんにち。かみちゃん です。
>
>>指定以外のセルをダブルリックした時もう一個フォーム表示させたい
>
>指定以外のセルをダブルクリックしたときは、全部で2個フォームを表示させたいということですか?
はい。全部で2個表示させます

【65670】Re:フォームの表示
発言  芋洗い二級  - 10/6/19(土) 22:28 -

引用なし
パスワード
   >Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
> If Target.Row Mod 4 <> 1 Then Exit Sub
> If Intersect(Target, Columns("A:F")) Is Nothing Then Exit Sub
>  UserForm1.Show
> Cancel = True
>End Sub

単純にこの文を改変するとこうなったポヨ
目的がわからんから元が適正かは知らんポヨ

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
 If Target.Row Mod 4 <> 1 Then Exit and _
 Intersect(Target, Columns("A:F")) Is Nothing Then
  UserForm2.Show
 else
  UserForm1.Show
  Cancel = True
 end if
End Sub

【65671】Re:フォームの表示
質問  あるぱか  - 10/6/20(日) 20:33 -

引用なし
パスワード
   ▼芋洗い二級 さん:
>>Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
>> If Target.Row Mod 4 <> 1 Then Exit Sub
>> If Intersect(Target, Columns("A:F")) Is Nothing Then Exit Sub
>>  UserForm1.Show
>> Cancel = True
>>End Sub
>
>単純にこの文を改変するとこうなったポヨ
>目的がわからんから元が適正かは知らんポヨ
>
>Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
> If Target.Row Mod 4 <> 1 Then Exit and _
> Intersect(Target, Columns("A:F")) Is Nothing Then
>  UserForm2.Show
> else
>  UserForm1.Show
>  Cancel = True
> end if
>End Sub
すみません最初に提示したコードが間違っていました。
正しくはこうです
>>Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
>> If Target.Row Mod 4 <> 1 Then Exit Sub
>> If Target.Row < 2 Then Exit Sub
>> If Intersect(Target, Columns("A:F")) Is Nothing Then Exit Sub
>>  UserForm1.Show
>> Cancel = True
>>End Sub
Cancel = Trueの次にElseを使ってもうまくいかないんです

【65672】Re:フォームの表示
発言  かみちゃん  - 10/6/20(日) 21:32 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>すみません最初に提示したコードが間違っていました。
>正しくはこうです
>>>Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
>>> If Target.Row Mod 4 <> 1 Then Exit Sub
>>> If Target.Row < 2 Then Exit Sub
>>> If Intersect(Target, Columns("A:F")) Is Nothing Then Exit Sub
>>>  UserForm1.Show
>>> Cancel = True
>>>End Sub
>Cancel = Trueの次にElseを使ってもうまくいかない

確認ですが、
> 指定したセルにユーザーフォーム表示させるコードを作ることができたのですが
> 指定以外のセルをダブルリックした時
で説明されている指定セルとは、
5行目、9行目・・・などと、5行目から4行おきのA〜F列であって、
指定セル以外は、それ以外のセルなのでしょうか?

UserFormは、全部で2個ということですが、
UserForm1を2個ではないのですか?
UserForm1を1個、UserForm2を1個であれば、以下のような感じでしょうか?

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
 If Target.Row Mod 4 <> 1 Then Exit Sub
 If Target.Row < 2 Then Exit Sub
 If Intersect(Target, Columns("A:F")) Is Nothing Then
  UserForm2.Show
  Exit Sub
 Else
  UserForm1.Show
  Cancel = True
 End If
End Sub

【65673】Re:フォームの表示
発言  あるぱか  - 10/6/20(日) 22:25 -

引用なし
パスワード
   こんばんは すみません。説明がヘタで・・・
5行目、9行目・・・などと、5行目から4行おきのA〜F列であって、
指定セル以外は、それ以外のセルなのでしょうか?
A〜F列の5行目、9行目・・・はフォーム1を表示して
A〜F列の6〜8行目10〜12行目・・・はフォーム2を表示するを作りたいのです
説明ベタですみませんがよろしくお願いします

【65674】Re:フォームの表示
発言  かみちゃん  - 10/6/20(日) 22:36 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>>5行目、9行目・・・などと、5行目から4行おきのA〜F列であって、
>>指定セル以外は、それ以外のセルなのでしょうか?
>
>A〜F列の5行目、9行目・・・はフォーム1を表示して
>A〜F列の6〜8行目10〜12行目・・・はフォーム2を表示するを作りたい

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
 If Target.Row < 2 Then Exit Sub
 If Intersect(Target, Columns("A:F")) Is Nothing Then Exit Sub
 If Target.Row Mod 4 <> 1 Then
  UserForm2.Show
 Else
  UserForm1.Show
 End If
 Cancel = True
End Sub

A〜F列の5行目でダブルクリックして、UserForm1を表示させた後、続けて、
6行目をダブルクリックしたいなどの場合は、
UserForm1を表示させたまま、UserForm2を表示させたいということですよね?
それであれば、UserFormのShowModalプロパティをFalseにしておくか、
  UserForm1.Show 0

  UserForm2.Show 0
などとする必要があると思います。

【65675】Re:フォームの表示
お礼  あるぱか  - 10/6/20(日) 22:39 -

引用なし
パスワード
   ありがとうございます。
出来ました。色々説明がへたですみませんでした

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