• ベストアンサー

TextをEnterKeyで選んだ後にLISTBOXを非表示

OSはWin XP home EXCEL2002を使用しています。 ActivecellにリストボックスのデータをEnterKeyで入れた後にリストボックスの表示をFalseにしたいと思っています。以下のようにすると必ずEXCELが落ちてしまいます。 Private Sub ListBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) If KeyAscii = vbKeyReturn Then ActiveCell.Value = ListBox1.Text ListBox1.Visible = False End If End Sub 何がいけないのかよく分かりません。悪い部分の解説もできればお願いしたいと思います。よろしくお願いします。

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

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.2

ActiveCell.Value = ListBox1.Text ListBox1.Visible = False KeyAscii = 0 でどうでしょうか。 どうも、『KeyAscii』が一因のように思えます。 当方、Excel97、質問のコードでは同様に落っこちました。 『KeyAscii = 0』を追加すると、質問のコードは問題なく機能しました。原因の説明ではなく、ちょっといじったら動いたという連絡と思ってください。 >悪い部分の解説もできればお願いしたいと思います。 ・・・分かりません。。。が正直なところです。    動いていたコードをボタンに貼り付けると動かなかったり、    『ActiveCell.Activate』が必要だったりするのと同じ症状でしょうか?    『ListBox1.Visible = False』を独自に実行すると問題ないので、    フォーカスがどこにあるかが原因かもしれません。    いずれにしても原因は???です。何故なんでしょうね。(やはり一般人です)

min128mini
質問者

お礼

出来ましたっ!(^^)! Win XP & XL2002, Win 2000 & XL2002の組み合わせ両方で大丈夫でした。 nishi6さんが一般人? まさっかー!? 先日は私自身もお世話になりましたし、今私が作っている製品には何箇所もnishi6さんが他の方へ回答された分のコードが活躍してくれています。 ありがとうございました!

その他の回答 (1)

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.1

ListBox は Sheet上にあるんですよね? Excel97で確認しました。 キーイベントのプロシージャ内で Visible プロパティを操作するとダメなのかな?この辺は憶測なんで、聞き流して下さい。 取りあえず代替案でフォーカスが外れた時に非表示にするとか、、、 '************************************************************************* Private Sub ListBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)  If KeyAscii = vbKeyReturn Then    ActiveCell.Value = ListBox1.Value  End If End Sub '************************************************************************* Private Sub ListBox1_LostFocus()  ListBox1.Visible = False End Sub '************************************************************************* Private Sub CommandButton1_Click()  ListBox1.Visible = True End Sub

min128mini
質問者

お礼

はい、ListBoxはシート上にあります。 代替案ありがとうございます。早速試させていただきましたが、手動で他の場所をクリックしないとListBoxは消えてくれないですね。やはり、選んだらすぐにいなくなって欲しいのです。 強制的にLostFocusさせるため、ActiveCell.Value = ListBox1.Value の後にRange("a1").selectとしてみましたが、やはりEXCELが落ちてしまうようです。

関連するQ&A