[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2005/02/22(Tue) 18:24
投稿者名:見習い僧侶
Eメール:
URL :
タイトル:
コンボボックスのテキスト出力
表題の件ですが、コンボボックスの内容をテキストに出力するには
どうしたら良いのでしょうか?

Form_Loadでテキストの内容をコンボボックスに入れるのは
分かったのですが、その逆が分からないのです・・・

なにとぞ、よろしくお願いします。

投稿時間:2005/02/22(Tue) 19:59
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: コンボボックスのテキスト出力
> 表題の件ですが、コンボボックスの内容をテキストに出力するには
テキストファイルに保存したいという事なら
Private Sub Command1_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

Private Sub Form_Load()
    With Combo1
        .AddItem "りんご"
        .AddItem "バナナ"
        .AddItem "みかん"
        .AddItem "いちご"
        .AddItem "トマト"
    End With
End Sub

投稿時間:2005/02/22(Tue) 21:36
投稿者名:見習い僧侶
Eメール:
URL :
タイトル:
Re^2: コンボボックスのテキスト出力
大変わかりやすいサンプルありがとうございました。
おかげで出来ました!

で、ついでに申し訳ないのですが、
Private Sub Form_Load()
    With Combo1
        .AddItem "りんご"
        .AddItem "バナナ"
        .AddItem "みかん"
        .AddItem "いちご"
        .AddItem "トマト"
        .AddItem "りんご"
    End With
End Sub
このような同じ項目(りんご)が存在している場合は、
1件としてテキスト出力する方法はありますでしょうか?


> > 表題の件ですが、コンボボックスの内容をテキストに出力するには
> テキストファイルに保存したいという事なら
> Private Sub Command1_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
>
> Private Sub Form_Load()
>     With Combo1
>         .AddItem "りんご"
>         .AddItem "バナナ"
>         .AddItem "みかん"
>         .AddItem "いちご"
>         .AddItem "トマト"
>     End With
> End Sub

投稿時間:2005/02/22(Tue) 22:19
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^3: コンボボックスのテキスト出力
通常は追加登録するときにすでに登録されていないかを調べ、なければ追加登録
するようにします。
登録の都度だとデータの件数分の比較ですみますが、そうでなければ全部のデータを
データ件数分比較する事になります。

件数がすくなければ1件1件総当りで比較すれば同じデータかどうか解りますよね
件数が多いと時間がかかるので色々工夫する必要があります。
たとへばAPI 関数を使ったり(ここの他のコントロール関係でListBox で同様の事をやっています
ComboBoxでもほぼ同様の操作でできるかと)

投稿時間:2005/02/22(Tue) 22:44
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
簡単なサンプル
Private Sub Command1_Click()
    Dim i         As Long
    Dim intFileNo As Integer
    Dim strCobTxt As String
    For i = 0 To Combo1.ListCount - 1
        If InStr(strCobTxt, Combo1.List(i) & vbCrLf) = 0 Then
            strCobTxt = strCobTxt & Combo1.List(i) & vbCrLf
        End If
    Next i
    
    intFileNo = FreeFile
    Open "c:\Cobtest.txt" For Output As #intFileNo
    Print #intFileNo, strCobTxt
    Close #intFileNo
End Sub

投稿時間:2005/02/23(Wed) 11:25
投稿者名:見習い僧侶
Eメール:
URL :
タイトル:
Re: 簡単なサンプル
色々と勉強になりました。
本当にありがとうございました。