- ベストアンサー
キーボード入力でカレンダーを表示させる方法について
- VBで作成したカレンダープログラムにおいて、プルダウンでの選択に加えてキーボード入力によるカレンダー表示を行いたいが、うまくいかない。
- 現在のプログラムでは、月の選択においてキーボード入力による操作をサポートしておらず、プルダウンを使用してのみ操作が可能。
- キーボード入力による操作を実現するためには、プログラムにコンボボックスのキーボードイベント処理を追加する必要がある。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
入力欄に入力した文字列は、cboList_month.Textじゃないかな? 手元にVBが無いので確認できませんが、 Private Sub cboList_month_KeyPress(KeyAscii As Integer) If KeyAscii = vbKeyReturn Then mintCur_month = Val(cboList_month.Text) Call calender_hyouzi 'カレンダーを表示させる関数 End If End Sub こんな感じかな?
その他の回答 (3)
- imogasi
- ベストアンサー率27% (4737/17069)
標題の>カレンダー機能について は質問内容を表してないようです。 質問のような、回りくどいことをする必要なく (エクセルVBAの例ですが) Private Sub ComboBox1_Click() MsgBox Worksheets("Sheet1").ComboBox1.Text End Sub でコンボをクリックすると、月数字が文字列で取れます。 これでは不便・ダメ(KeyPressに拘る)という理由を補足してみてください。
補足
お世話になります。 コンボをクリックすることで文字列の取得はできると思いますが キーボードのみの操作でも実現したい欲求があるためkeypressに 拘っただけです。 標題と質問内容が一致してなくて申し訳ありません。
- ape5
- ベストアンサー率57% (85/148)
リストボックスにキーボードから値を入力して、リストの中の一つと合致したらListIndexって自動的に設定されましたっけ? 質問者さんの例でいうと 月のリストボックスに10と入力したからListIndexが自動的に9に設定されましたっけ? 違ってたらごめんなさい・・・
補足
お世話になります。 clickイベント内では設定はされますがkeyascii内では 入力した値はListIndexには自動で設定はされないと思います。
- unamana19
- ベストアンサー率62% (56/89)
どのような仕様にしたいのかが不明なので、適切な回答ができませんね。 >上手くいきません。 これは、「どのように」上手くいかないのでしょうか? Clickイベントは、アイテムが選択された場合にも発生するので、 「アイテムを選択」->「ENTERを入力」 では、同じ処理が2回実行されるかと思いますよ。
補足
お世話になります。 現在の仕様では自作のカレンダーを起動すると現在の年・月、2007年1月のカレンダーが表示されます。年と月はそれぞれコンボボックスになっていてプルダウンより2010と10をマウスより選択しクリックすることで2007年10月のカレンダーが表示されます。その仕様に+αでコンボボックスに直接2007と10をキーボードより入力しEnterキーを押下することで2007年10月のカレンダーも表示可能な仕様にしたいと思っているのですがキーボードで2007と10を入力しEnterキーを押しても上手くカレンダー表示されないので困っています。 よろしくお願いします。
補足
お世話になります。 教えていただいたロッジクで望みの仕様を実現できました。 ありがとうございます。