Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Home : Excel 2010)
ComboBoxでリスト選択後、次のコントロールへ移動 エンターキー
投稿日時: 18/04/01 17:17:51
投稿者: のりぴっぴ

フォーム内に30個のテキストボックスやComboBoxを配置しています。
基本はエンターキーで次のコントロールへ移動しています。
ComboBoxAは、リスト選択後エンターで確定、もう一回エンターで次のコントロールへ移動できています。
(特に設定をした覚えはありません。)
ところがComboBoxBは、リスト選択後エンターで確定、もう一回エンターを押しても何の反応もなく、次のコントロールへ移動できません。
 
やむなく、モーグで下記即効テクニックを発見し一応、もう一回エンターキーで次のコントロールへ移動できるようにはなったのですが、なぜ?????? プロパティの中にもらしきものは見当たりません。
どなたか種明かしをしていただけませんでしょうか?
よろしくお願いします。
 
 
即効テクニック
ComboBoxPrivate Sub ComboBoxB_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
 
    '↓キーがエンターキーであり、データが空白でなければ、TABで次に移動する。
    If KeyAscii = 13 And Not ComboBoxB.Value = "" Then
        Application.SendKeys ("{TAB}")
    End If
 
End Sub

回答
投稿日時: 18/04/01 17:37:21
投稿者: mattuwan44

>ComboBoxAは、リスト選択後エンターで確定、もう一回エンターで次のコントロールへ移動できています。
↑何も設定してない場合のデフォルトの挙動のようです。
  
>ところがComboBoxBは、リスト選択後エンターで確定、もう一回エンターを押しても何の反応もなく、次のコントロールへ移動できません。
ちなみに、TABキーで次のコントロールへフォーカスが移動できますでしょうか?
 
BeforeUpdateイベントかExitでキャンセルされていてフォーカスの移動ができてないのでは?
と推測しますがいかがでしょう?
 
ブレークポイントを置いてどのイベントが反応してるとか、
1行毎にステップ実行して、どこかで
Cancel=true
と実行されてないか確認してみてください。

投稿日時: 18/04/01 17:53:15
投稿者: のりぴっぴ

mattuwan44さん
 
早速にヒントをくださりありがとうございます。
 
○「TABキーで次のコントロールへフォーカスが移動」は問題なくできています。
 
○ 「BeforeUpdateイベントかExit」につきましては、覚えはないのですが、チェックしてみたいと思います。不慣れなため時間がかかるかもしれませんがよろしくお願いします。
 
頑張ってみます。

投稿日時: 18/04/08 17:28:27
投稿者: のりぴっぴ

mattuwan44 さん、ありがとうございました。
 
ちょっとすぐかかれそうにもないので、余裕ができたら検証しようと思います。
とりあえず解決済みということにさせていただきたいと思います。
いつまでも回答募集中というのは心苦しく思います。
失礼いたしました。