1.ComboBox に関するワンポイントテクニック集 |
1.コンボボックスの項目を追加・挿入・書き換えをする (1) リストの最後に項目を追加する (2) リストの指定した位置に項目を挿入する (3) リストの指定した位置の項目を書き換える 2.コンボボックスの項目を削除する (1) リストの指定の項目を削除する (2) リストの全ての項目を削除する 3.コンボボックスの選択した項目を取得する (1) 選択されている項目とインデックスを取得する (2) 選択したテキストを取得する 4.CSV ファイルの指定の項目をコンボボックスに登録する 5.コンボボックスに表示されているデータをテキストファイルに保存する 6.コンボボックスで項目を右詰で表示する 7.コンボボックスの項目をクリックせずに取得する 8.サンプル投稿用掲示板に掲載しているコンボボックスに関するサンプルの紹介(8サンプル) |
下記プログラムコードに関する補足・注意事項 動作確認:Windows Vista・Windows 7 (32bit) / VB6.0(SP6) Option :[Option Explicit] 参照設定: 使用 API: その他 : : |
1.コンボボックスの項目を追加・挿入・書き換えをする |
Private Sub Command1_Click() 'リストの最後に項目を追加する Combo1.AddItem "あいうえお" Combo1.AddItem "かきくけこ" Combo1.AddItem "たちつてと" 'リストの指定した位置に項目を挿入する Combo1.AddItem "さしすせそ", 2 'リストの指定した項目を書き換える Combo1.List(1) = "カキクケコ" End Sub 上記実行結果 |
2.コンボボックスの項目を削除する |
Private Sub Command2_Click() '指定の項目を削除する Combo1.RemoveItem 1 End Sub Private Sub Command3_Click() '項目を全て削除する Combo1.Clear End Sub |
3.コンボボックスの選択した項目を取得する |
Private Sub Combo1_Click() '選択されている項目を取得する MsgBox Combo1.List(Combo1.ListIndex) End Sub Private Sub Command4_Click() '選択された項目(Text)を取得する MsgBox Combo1.Text End Sub |
4.CSV ファイルの指定の項目をコンボボックスに登録する |
下記サンプルは、日本郵便株式会社の全国一括のCSV ファイルより、住所の部分のみを取得してコンボボックスに表示するように設定しております。この方法なら他のファイルへの応用も簡単にできるかと思います。 但し、これには罠があります、郵便番号のデータは、122,570 件あまりあります、一応表示はされたみたいですが、ListBox やComboBox では、Integer の範囲の件数しか扱えません、従って、32,767 件を超えるようなデータを扱う場合は注意して下さい。 Private Sub Form_Load() Dim myString As String Dim lngFileNo As Long lngFileNo = FreeFile Open "c:\KEN_ALL.CSV" For Input As #lngFileNo Do Until EOF(lngFileNo) Line Input #lngFileNo, myString Dim myTxt() As String myTxt = Split(Replace(myString, """", ""), ",") Combo1.AddItem myTxt(8) Loop Close #lngFileNo Combo1.ListIndex = 100 '初期テキストボックスに表示分の指定 End Sub 上記実行結果 |
5.コンボボックスに表示されているデータをテキストファイルに保存する |
Private Sub Command2_Click() Dim i As Long Dim intFileNo As Integer Dim strCobTxt As String For i = 0 To Combo1.ListCount - 1 strCobTxt = strCobTxt & Combo1.List(i) & vbCrLf Next i intFileNo = FreeFile Open "c:\Cobtest.txt" For Output As #intFileNo Print #intFileNo, strCobTxt Close #intFileNo End Sub |
6.コンボボックスで項目を右詰で表示する |
Private Sub Command1_Click() '右詰表示 With Combo1 .Clear .Move 190, 400, 3000 .FontName = "MS ゴシック" .FontSize = 12 .AddItem StrRightSet(24, "あ1いう") .AddItem StrRightSet(24, "あ12いうえ") .AddItem StrRightSet(24, "あ123いうえお") .AddItem StrRightSet(24, "あ1234いうえおか") .AddItem StrRightSet(24, "あ12345いうえおかき") End With End Sub '================================================= 'コンボボックス・リストボックスで右詰表示する関数 '================================================= ' result = = StrRightSet(StrLen, Mystring) ' 引数 StrLen :半角換算の文字列数(Setする文字列の長さ) ' 引数 MyString :元の文字列 ' 戻値 result :変換後の文字列(前方に空白を付加した) '------------------------------------------------- Private Function StrRightSet(ByVal StrLen As Integer, _ ByVal Mystring As String) As String Dim N As Integer N = LenB(StrConv(Mystring, vbFromUnicode)) StrRightSet = String$(StrLen - N, " ") & Mystring End Function 上記実行結果 要領としては、2.Command1.Caption 等に左揃え・右揃えで文字を表示と同じで等幅フォントを使って表示幅分スペースを付加して右づめで表示されるように設定しているだけです。 |
7.コンボボックスの項目をクリックせずに取得する |
掲示板の質問コンボボックスの選択前 - ひろ 09/30-15:46 No.756 に答えて作ったもので、考えているより試して見た方が早いといった見本です。 Option Explicit 'SampleNo=217 WindowsXP VB6.0(SP5) 2002.10.04 Private Sub Combo1_GotFocus() Timer1.Interval = 100 End Sub Private Sub Combo1_LostFocus() Timer1.Interval = 0 End Sub Private Sub Form_Load() Combo1.AddItem "1 あいうえお" Combo1.AddItem "2 かきくけこ" Combo1.AddItem "3 さしすせそ" Combo1.AddItem "4 たちつてと" Combo1.AddItem "5 なにぬねの" Combo1.AddItem "6 はひふへほ" Combo1.AddItem "7 まみむめも" End Sub Private Sub Timer1_Timer() Label1.Caption = Combo1.ListIndex Label2.Caption = Combo1.List(Combo1.ListIndex) End Sub |
8.サンプル投稿用掲示板に掲載しているコンボボックスに関するサンプルの紹介 |
1.Access風コンボボックス(VB6.0) Accessにあるような カラム指定はできないのでしょうか? Accessの場合IDを見えなくしつつ、必要な時にカラムを指定して、IDを取得できたのですが? 2.ComboBoxでDroppedDown にするとマウスカーソルが消える(VB6.0) 【コンボボックスのドロップダウンリストを表示】を Combo1_Change()で動作させるとリストが表示されたあとで、 マウスカーソルが消えてしまいます。 3.コンボボックス/ListBoxの右揃え表示(VB6.0) 6.コンボボックスで項目を右詰で表示するに掲載の分と同じ 4.コンボボックスのデータをテキストファイルに保存する(VB6.0) コンボボックスの内容をテキストに出力するにはどうしたら良いのでしょうか? 5.コンボボックスのドロップダウンリストの幅を変更(VB6.0) ドロップダウンリストを出すコンボボックスで、リスト文字列がコンボボックスの幅より長くなってしまう場合があります。 そうすると文字が途中で切れてしまい 内容が良くわからなくなったりします。 6.コンボボックスの自動オープン(VB6.0) 1.コマンドボタンを押下するとコンボボックスが開く。 2.1つめのコンボボックスに値が確定されえた時、2つめのコンボボックスのリストを開いた状態にさせる。 7.コンボボックスの表示について(VB6.0) このようなコンボボックスがあります。このときたとえば1か2か3の情報をもらいその情報から 1だったらcbofruit.textに"リンゴ"という風に表示させるにはどうすればよいでしょうか 8.コンボボックス上でのTABキーイベント取得(VB6.0) コンボボックス上でTABキーが押された場合にTABキーが押された事を認識し任意の場所にフォーカスを移動したいのですが |
検索キーワード及びサンプルコードの別名(機能名) |
ComboBox の項目を追加・挿入・書き換えをする リストの最後に項目を追加する リストの指定した位置に項目を挿入する リストの指定した位置の項目を書き換える ComboBox の項目を削除する ) リストの指定の項目を削除する リストの全ての項目を削除する ComboBox の選択した項目を取得する 選択されている項目とインデックスを取得する 選択したテキストを取得する CSV ファイルの指定の項目をComboBox に登録する ComboBox に表示されているデータをテキストファイルに保存する ComboBox で項目を右詰で表示する |