Excel VBA質問箱 IV

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

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


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

【36219】テキストボックスに候補表示・・・・ VBAに負けっ放し 06/3/25(土) 11:15 質問[未読]
【36220】Re:テキストボックスに候補表示・・・・ ぱっせんじゃー 06/3/25(土) 11:20 発言[未読]
【36223】Re:テキストボックスに候補表示・・・・ ぱっせんじゃー 06/3/25(土) 13:22 発言[未読]
【36234】Re:テキストボックスに候補表示・・・・ neptune 06/3/25(土) 15:48 発言[未読]
【36235】Re:テキストボックスに候補表示・・・・ neptune 06/3/25(土) 15:50 発言[未読]
【36240】Re:テキストボックスに候補表示・・・・ ぱっせんじゃー 06/3/25(土) 16:07 発言[未読]
【36241】Re:テキストボックスに候補表示・・・・ ichinose 06/3/25(土) 16:21 発言[未読]
【36254】Re:テキストボックスに候補表示・・・・ VBAに負けっぱなし 06/3/26(日) 16:01 質問[未読]
【36447】Re:テキストボックスに候補表示・・・・ Jaka 06/3/31(金) 14:00 回答[未読]
【75168】Re:テキストボックスに候補表示・・・・ とおりすぎーた 13/12/25(水) 10:18 発言[未読]

【36219】テキストボックスに候補表示・・・・
質問  VBAに負けっ放し  - 06/3/25(土) 11:15 -

引用なし
パスワード
   今漠然と考えているものなのですが、テキストボックスに1〜3文字入力したときにその文字で始まる候補を表示することは可能でしょうか?
いろいろ検索してみたのですが、なかなか見つからなくて・・・orz

【36220】Re:テキストボックスに候補表示・・・・
発言  ぱっせんじゃー  - 06/3/25(土) 11:20 -

引用なし
パスワード
   テキストボックスのみでは難しいのでは?

テキストボックスとリストボックスを組み合わせた
ら出来そうな気がします。

like演算子で判断させ、リストボックスにAddItem
していく、というような感じになると思います。

【36223】Re:テキストボックスに候補表示・・・・
発言  ぱっせんじゃー  - 06/3/25(土) 13:22 -

引用なし
パスワード
   テキストボックスのみでも出来ましたね。

テキストボックスのチェンジイベントに、
入力文字をキーにFindメソッドで候補群
のセル範囲から最初に見つかった文字を
テキストボックスに代入、でいけると思
います。

候補が複数ある場合はやはりリストボックス
やコンボボックスとの組み合わせになると思
います。

【36234】Re:テキストボックスに候補表示・・・・
発言  neptune  - 06/3/25(土) 15:48 -

引用なし
パスワード
   ▼ぱっせんじゃー さん:
>候補が複数ある場合はやはりリストボックス
>やコンボボックスとの組み合わせになると思
>います。
複数ある場合はコンボボックスでTextBoxに見せかけるとかじゃどうですか?

UserFormにコンボボックスを1つ配置して
UserForm表示後コンボボックスに123とか適当に入力してみて下さい。
候補が現れます。見た目はTextBoxとしか見えません。

fmShowDropButtonWhenNeverはバージョンによって違うかもしれませんから
違ったら訂正してください。

Private Sub ComboBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Static lCount As Long
  If lCount >= 2 Then
    Me.ComboBox1.DropDown
    lCount = 0
  Else
    lCount = lCount + 1
  End If
End Sub

Private Sub UserForm_Initialize()
  With Me.ComboBox1
    .ShowDropButtonWhen = fmShowDropButtonWhenNever
    .AddItem "ABC"
    .AddItem "EFG"
    .AddItem "HIJ"
  End With
End Sub

【36235】Re:テキストボックスに候補表示・・・・
発言  neptune  - 06/3/25(土) 15:50 -

引用なし
パスワード
   注意:
表示タイミングのロジックは真剣に考えてませんので、このままでは使えないと思います。

【36240】Re:テキストボックスに候補表示・・・・
発言  ぱっせんじゃー  - 06/3/25(土) 16:07 -

引用なし
パスワード
   >複数ある場合はコンボボックスでTextBoxに見せかけるとかじゃどうですか?

はじめからコンボボックスとは思いつきませんでした。
発想の転換が必要ですね。

【36241】Re:テキストボックスに候補表示・・・・
発言  ichinose  - 06/3/25(土) 16:21 -

引用なし
パスワード
   みなさん、こんにちは。


>今漠然と考えているものなのですが、テキストボックスに1〜3文字入力したときにその文字で始まる候補を表示することは可能でしょうか?
>いろいろ検索してみたのですが、なかなか見つからなくて・・・orz

以前にも同じようなご質問がありました。

http://www.vbalab.net/vbaqa/c-board.cgi?cmd=ntr;tree=25487;id=excel

参考にしてみて下さい

【36254】Re:テキストボックスに候補表示・・・・
質問  VBAに負けっぱなし  - 06/3/26(日) 16:01 -

引用なし
パスワード
   みなさんお返事ありがとうございます。

質問した後考えていてエクセルの標準の機能のオートコンプリートのようなものをユーザーフォームで・・・という風にいうとわかりやすいかなと思いました。

コンボボックスを使うやりかたは候補はでてきますが入力した段階でプルダウンメニューのようなものを表示してその中に候補が並んでいるという風には作れなくて・・・・orz

Private Sub UserForm_Initialize()
  ComboBox1.MatchEntry = fmMatchEntryFirstLetter
End Sub

Private Sub ComboBox1_Change()
  Worksheets("Title").Range("E10").Value = ComboBox1.Text
End Sub

【36447】Re:テキストボックスに候補表示・・・・
回答  Jaka  - 06/3/31(金) 14:00 -

引用なし
パスワード
   ▼VBAに負けっぱなし さん:
>質問した後考えていてエクセルの標準の機能のオートコンプリートのようなものをユーザーフォームで・・・という風にいうとわかりやすいかなと思いました。
>
>コンボボックスを使うやりかたは候補はでてきますが入力した段階でプルダウンメニューのようなものを表示してその中に候補が並んでいるという風には作れなくて・・・・orz
>  ComboBox1.MatchEntry = fmMatchEntryFirstLetter
コンボボックスのリストをソートして作って下さい。
でも、fmMatchEntryFirstLetterは、2文字入力には対応してなかったと思います。

【75168】Re:テキストボックスに候補表示・・・・
発言  とおりすぎーた  - 13/12/25(水) 10:18 -

引用なし
パスワード
   すぐ役立つエクセルVBAマクロ集
コンボボックスで1文字目一致で入力候補を表示するには?
というのに似たような内容があります。
検索ください。

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