VBレスキュー(花ちゃん)
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ各掲示板

リンク元へ戻ります。 コンボボックス関係のメニュー
1.ComboBox に関するワンポイントテクニック集
2.コンボボックスのドロップダウンリストをプログラムから表示する
3.コンボボックスのテキスト部の高さを設定する
4.コンボボックスのドロップダウンリスト項目数を変更する
5.アイコン付のコンボボックスを作成する
6.コンボボックスで重複しない項目だけを追加登録する
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.その他、当サイト内に掲載しているコンボボックスに関するサンプル


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

  上記実行結果
 combobox01_01.gif

このページのトップへ移動します。 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

 上記実行結果
 combobox01_02.gif

このページのトップへ移動します。 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

 上記実行結果
 combobox01_03.gif
要領としては、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 で項目を右詰で表示する

このページのトップへ移動します。