Excel VBA質問箱 IV

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

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


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

【56337】ダブルクリックの影響範囲? takao 08/6/14(土) 0:48 質問[未読]
【56339】Re:ダブルクリックの影響範囲? Yuki 08/6/14(土) 8:15 発言[未読]
【56342】Re:ダブルクリックの影響範囲? takao 08/6/14(土) 9:10 お礼[未読]
【56343】Re:ダブルクリックの影響範囲? kanabun 08/6/14(土) 9:24 発言[未読]
【56344】Re:ダブルクリックの影響範囲? takao 08/6/14(土) 9:46 お礼[未読]
【56347】Re:ダブルクリックの影響範囲? kanabun 08/6/14(土) 10:51 発言[未読]
【56360】Re:ダブルクリックの影響範囲? bykin 08/6/15(日) 1:02 発言[未読]
【56346】Re:ダブルクリックの影響範囲? Yuki 08/6/14(土) 10:44 発言[未読]

【56337】ダブルクリックの影響範囲?
質問  takao  - 08/6/14(土) 0:48 -

引用なし
パスワード
   ダブルクリックの変な動きで悩んでいます。
うまく説明できないかも知れませんが、ご推察頂き、宜しくご教示お願い致します。
1.下記の様な処理を作成しました。
 1.あるセル=Cells(Rw,Rc)をダブルクリックするとListBoxを表示。
 Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As ・・・
  (ListBoxが1つのUserFormを表示。)

 2.ListBoxの項目をクリック(選択)すると、 1でダブルクリックしたセルに、
  選択したデータ格納する。
 Sub ListBox1_Click()
   ActiveSheet.Cells(Rw, Rc) = ListBox1.Text
   Unload Me

2.現象
 1STEP毎に実行すると正しく実行されますが、そのまま実行すると
 上記の2の "ListBoxの項目をクリック" が勝手に実行される場合がある。

3.推測・質問
 推測)1.でダブルクリックしたセルの位置と、ListBoxの表示位置が
  同じの場合のみ発生する事が判りました。
  ダブルクリックのイベント(?)が消えず(キャンセルされず)に、
  ListBoxのクリックイベントまで影響し実行されたのでは???
   と推測。
 質問)
 ・私の推測が正しいのか?
 ・推測通りなら回避策("ListBox1を勝手にクリック"されない方法)
 ・他の原因があれば、その内容
   を宜しくご教示お願い致します。

【56339】Re:ダブルクリックの影響範囲?
発言  Yuki  - 08/6/14(土) 8:15 -

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

>ダブルクリックの変な動きで悩んでいます。
確認出来ました。

回避策として
標準モジュールに
public Flg as boolean

シートモジュールに
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  Cancel = True
  Flg = True
  UserForm1.Show 0
End Sub

フォームモジュールに
Private Sub ListBox1_Click()
  If Flg Then
    Flg = False
    Exit Sub
  End If
  ActiveCell.Value = Me.ListBox1.Text
  Unload Me
End Sub

でどうでしょう。

【56342】Re:ダブルクリックの影響範囲?
お礼  takao  - 08/6/14(土) 9:10 -

引用なし
パスワード
   ▼Yuki さん:
ありがとうございました。
Yuki さんの案を試してみましたが、
 1.UserFormの表示場所によって動作が変わる。
 2.選択項目が勝手に決められてしまう。
  →ListBoxの操作が不便になります。
ことが判りました。

案を試している内に、セルのダブルクリックの内
(想像ですが)1クリックのみ残り、UserFormに引渡されるようです。
そこで、ListBoxのイベントをClick→DblClickに変更した所、
Click操作が変わる以外は、問題なく動作するようになり、取あえず
DblClickに変更しました。
できれば、1クリックで操作したいのですが今後の課題とします。

【56343】Re:ダブルクリックの影響範囲?
発言  kanabun  - 08/6/14(土) 9:24 -

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

一般機能の
データ> 入力規則 で 入力リストを表示してはどうでしょう

【56344】Re:ダブルクリックの影響範囲?
お礼  takao  - 08/6/14(土) 9:46 -

引用なし
パスワード
   ▼kanabun さん:
ありがとうございます。
実は、Listboxは、よく使用される語句を入力するための補助機能です。
従って、任意の語句の入力もあり、入力リストでは対応できません。

【56346】Re:ダブルクリックの影響範囲?
発言  Yuki  - 08/6/14(土) 10:44 -

引用なし
パスワード
   ▼takao さん:
チョット間が空きますが

Private Sub UserForm_Initialize()
  ' 多分リストのセットをしていると思います。
  Application.Wait [=NOW() + TIMEVALUE("00:00:00.3")]
  ’もし駄目だったら              ^^を.5位に
End Sub

後は元に戻してテストしてみて下さい。

【56347】Re:ダブルクリックの影響範囲?
発言  kanabun  - 08/6/14(土) 10:51 -

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

>実は、Listboxは、よく使用される語句を入力するための補助機能です。
>従って、任意の語句の入力もあり、入力リストでは対応できません。

そうでしたか〜〜 それは、残念。。

環境が違うので、takaoさんの言われる不具合が こちらでは再現できなか
ったので、何ですが、

いま、
Private Sub ListBox1_Click()
End Sub
に書かれていることを、

Private Sub ListBox1_AfterUpdate()
End Sub
に移動してみたら、何か変化 ないでしょうか?

【56360】Re:ダブルクリックの影響範囲?
発言  bykin  - 08/6/15(日) 1:02 -

引用なし
パスワード
   おばんです。

>実は、Listboxは、よく使用される語句を入力するための補助機能です。
>従って、任意の語句の入力もあり、入力リストでは対応できません。

ん?
入力規則はリスト以外の値入力もできまっせ。(「エラーメッセージ」タブで設定)

補助機能って言っても、
>ActiveCell.Value = Me.ListBox1.Text
ってことはリストの候補をそのままセルに入力してるわけやし、
入力規則で必要十分やと思うけどな〜

ま、勝手に出るから鬱陶しいかも知れんけど・・・
ほな。

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