• 締切済み

入力候補を表示させるには・・・?

oribeyakiの回答

  • oribeyaki
  • ベストアンサー率45% (18/40)
回答No.1

コンボボックスで似たような挙動をさせようと思えば、 やってやれんことは無いはず。 (あくまで方向性であって、VBの仕様でできないかも・・・) 候補データが配列に格納されているとして、 該当するデータを決定するには、Like演算子を使用します。 例) コンボボックスのKeyUpイベントに置いてください。 Private Sub Combo1_KeyUp(KeyCode As Integer, Shift As Integer) Dim dintJ As Integer Dim dstrPool As String '値を保存しておきます dstrPool = Combo1.Text 'データを消去します Combo1.Clear '入力データを頭から含むデータのみを再セットします For dintJ = 0 To 49  If PoolData(dintJ) Like Trim$(dstrPool) & "*" Then    Combo1.AddItem PoolData(dintJ)  End If Next 'リストを表示します。 SendKeys "{F4}" end sub ただし、これだけだとまずまともに動かんでしょう・・・^^; 最低でも、Enter等のKeyCodeは受け付けないようにしないといかんわね。 なんか挙動不審だし・・・・ 今テストしてみたら、なぜか、SendKeyメソッドの影響で、 「NumLock」ボタンを押しつづけてる永久ループに入ってしまった・・(**)。 ちょっと、今日忙しいので、また後日にでもテスト結果とサンプルを乗せますね。 もしくは、どなたかフォローを・・・  (無責任な・・・(-"-)) あ、あとComboBoxの「▼」が気に入らん場合は、上にTextでも張って消しといてください。

reira
質問者

お礼

ありがとうございます!! 私もoribeyakiさんが書いて下さっているソースを真似して いろいろやってみてはいるのですが、なかなかうまくいきません。 また、テスト結果とサンプルを載せてくださるということなので・・・。 本当にありがとうございます。助かります! 忙しくないとき、またよろしくお願いします。

関連するQ&A

  • エクセル 「入力候補を複数表示させたい」

    Microsoft Excelにて 下記のような入力システムをつくりたいです。 セル編集モードの間、 そのセルに既に入力されている文字列を含む文字列を あるリストの中から全て集めてリスト表示し(予測入力候補リスト) その中からユーザが選んだ文字列をセルに入力する。 分かり易い類似例としては、 googleなどの検索ボックスが挙げられます。 検索ワードを入力すると、 ワードをすべて打ち終わる前に、 既に入力された文字列を含むワードのリストがリスト表示され、 ユーザはリストからワードを選択して検索ボックスに入力できます。

  • VB6.0 でのテキストファイルの表示

    .net では、readstream でがばっととって、テキストボックス(読み取り専用)に表示しました。 これと同様のことをVB6.0でチャレンジしたのですが、テキストボックスに表示されるのは最初の一行だけでした。マルチラインのテキストボックス設置後 Private sub command1_click() Dim data as string Open "ファイルパス" for input as #256 Do while EOF(256) line input #256, data loop text1.text=data としたところ、ファイル内の最初の一行目に位置する「%」のみが表示されました。 readonlyもつかえないみたいなので、Listを使うのがよいのでしょうか?ご教示下さい

  • 入力候補を非表示にする方法はありますか?

    アクセスのコマンドボタンに文字を入力すると コマンドボタンに登録してあるリストが、自動で入力候補として出てしまうのですが この入力候補を非表示にする方法はありますか?

  • テキストボックスに表示された行の番号を取得したい

    VB.NETで簡単なテキストエディタを作っています。 テキストボックスをフォームに張り付けることにより、画面表示及び入力は出来るようになりました。それで、ほかのエディタ(秀丸など)のように、カーソルが、ある行にきたとき、その行番号を画面の下のほうに表示しようと考えています。そのため、まず、カーソルが位置づけられている行の行番号を取得したいのですが、その方法がわかりません。テキストボックスのプロパティ、メソッドを探したのですが、そのようなものは見あたりませんでした。どなたかご存じの方おりましたら、ご教授ください。

  • リストボックスから選択したデーターの一つだけを取得する

    VB5.0を使っています。 WIN2000です。 MDBとVBを使っています。 まず、顧客ID・顧客氏名・電話番号  この3つが1つのデータとして横並びの文字列で、リストボックスに表示されてゆきます。 リストボックスに表示したデータを選択し、その選択したデータの”顧客ID”だけを取り出して同じフォーム内のテキストボックスにいったん出し、そこから別のフォームに飛んでその”顧客ID”を元にデータの詳細を出す、といったものを作っていますが、 今のわたしの書いてるコードだけでは、何番の顧客IDを出しても、 別のフォーム(契約入力)に行くときには同じ1番の人のデータ詳細しか出ません。 「リストボックスから選択したデーターの一つだけを取得する」 には、どのようなコードを書けばいいか、教えていただけないでしょうか・・。 リストボックス(List1)から選択してテキストボックス(Text5)に取得する際にはすでに”顧客ID”だけを取り出したいのです。 今のコードでは、顧客ID・顧客氏名・電話番号 とすべてテキストボックス(Text5)にでてきてしまいます。 Private Sub cmnd2_Click()’選択ボタンclickでリストボックスのデータを取得。 Dim ListIndex As Integer Dim SelectedIndex As Integer Text5.Text = List1.List(List1.ListIndex)'→ここでリストボックスからデータを取得しています。 End Sub

  • 文字入力について

    いつもお世話になります。 VBでプログラムを作っています。 テキストボックスに、文字を入力させ、カーソルを次のテキストボックスに移動させます。 その時、小文字が入っていたら、メッセージを出したいのですが、どういう風にすればいいのか分かりません。 要は、大文字で15文字しか入力させたくないのです。 よろしくお願いします。

  • ACCESS2003のコンボボックスで入力候補が出ません

    ACCESS2003のコンボボックスで入力候補が出ません 先日似たような質問をさせていただきましたが、まだ未解決なのでまた質問させてください。 OSはWindows XP Professional SP3 です。OFFICE2003 Professional SP3 です。 Access2003 sp3 で自作した一覧フォームにコンボボックスを設定しています。 コンボボックスの値集合リストにクエリをあてています。 同じ値のレコードが多数ありますので、リスト表示が重複しないようにクエリで集計しています。 連結列は1つで単純な単語集です。経理の科目を表示しています。 そこに、データを入力しようとして途中まで入力します。例えば、”売掛”と入力した時点でリストに存在する”売掛金”が表示されます。 これは問題ないのですが、他の単語は出ない時があります。 例えば”広告”と入力した時、”広告宣伝費”という単語が登録されているのに出てきません。 調べた結果、リストにある上位50レコードまでが候補に出てきますが、51以下のレコードは出てきません。 ただし、クエリで集計などを使わない単純なリストでは、ちゃんと候補が出てきます。 クエリで集計などを行うと、コンボボックスの上位50レコードまでしか入力候補が出てきません。 ちなみに、まったく同じものをAccess2007で実行したら、ちゃんと全ての候補が出てきます。 sp3以前はこんなことはなかったように思います。 そこで、Access2003 sp3 の修正パッチをあててみたのですが変化ありませんでした。 長文で申し訳ございませんが、誰か解決方法をご存知の方がいらっしゃいましたらご指導お願いいたします。

  • テキストボックス空欄への追加入力

    リストボックス1であ行の氏名項目を選択実行しテキストボックス1~8に入力された後にか行にリストボックス項目を変え氏名を選択実行した場合、下記のコードではテキストボックス1からまた上書きされる。テキストボックス空欄に続けて選択項目が入力される方法はあるのでしょうか。悩んでいます。どなたかコードがわかる方よろしくお願いします。 Private Sub 実行Cnd_Click() Dim cnt As Integer   Dim i As Integer If ListBox1.ListIndex = -1 Then Exit Sub cnt = 1 For i = 0 To ListBox1.ListCount - 1 If ListBox1.Selected(i) Then Me.Controls("TextBox" & cnt).Text = ListBox1.List(i) cnt = cnt + 1 End If Next End Sub

  • フォームビューでの入力ですぐ候補を表示させるには?

    アクセス2003を使用しています。 フォームデザインでボックスをいくつか作り、そのうち1つにコンボボックスを付けました。 フォームビューでデータを入力中、タブキーでボックスを移動した時、右端のコンボボックス表示ボタンを押さなくても、ボックスにカーソルが入ると同時に、コンボボックスが表示されるようにすることは可能でしょうか。 わかる方、教えて下さい。お願いします。 説明不足があれば補足します。

  • 入力候補を出す方法??

    説明のしかたがよくわからないのですが読んで下さい。 以前入力した情報があるとします。で、また同じ情報(例えばメルアドや住所等)を何度も入力するのを避けるために、ダブルクリックするとリストみたいに下に入力候補が出てきますよね?? ずっとそうなってたんですが、パソコンをリカバリ(?)したら、入力候補が出てこなくなってしまいました。 以前のように入力候補が出てくるようにしたいのですが、どうしたらいいんでしょうか・・・? なんともわかりずらい説明しかできずすみません。 どなたか教えてください。よろしくお願いします。 ちなみに私のパソコンは富士通のビブロです。