- 日時: 2013/01/28 11:43
- 名前: VBレスキュー(花ちゃん)
- ***********************************************************************************
* カテゴリー:[リストボックス][][] * * キーワード:ListBox, CSVデータ, CheckedListBox,チェックボックス,全選択 全解除 * *********************************************************************************** タイトル : ListBoxにCSVデータを表示したい! 記 事 No : 15536 投 稿 日 : 2012/07/16(Mon) 08:53 元質問者 : ロト君 ----------------------------------------------------------------------------------- 今躓いているプログラムが、ListBoxにCSVデータを反映させ、チェックした項目だけを、 他のウィンドのマトリックスに表示させ、編集するものです。 CSVの特定部分をチェックボックス付き ListBox 内に表示し、チェックした項目だけを 反映させるにはどうしたらよいですか? 「すべてチェック,すべて解除」の機能もほしいです! ----------------------------------------------------------------------------------- タイトル:ListBoxにCSVデータを表示し、選択項目を取り出す(598) - VB6.0 動作確認:Windows Vista / Windows 7 / VB6.0(SP6) IE 9.0 で確認 投 稿 日:2013/01/28 投 稿 者:VBレスキュー(花ちゃん) ----------------------------------------------------------------------------------- ここのサイトに掲載のサンプルを流用して作ってみました。
Option Explicit
' http://hanatyan.sakura.ne.jp/vbhlp/listcont.htm 'すべての項目を選択状態にする 選択状態を解除する の部分のコードを流用 Private Declare Function SendMessage Lib "user32" _ Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, _ ByVal wParam As Long, lParam As Any) As Long
'複数選択リストボックスの指定の項目を選択(P828) Private Const LB_SETSEL = &H185
Private Frg1 As Boolean
Private Sub Form_Load() ' 別途、プロパティで設定しておいて下さい。 ' List1.Style = vbButtonGraphical ' List1.MultiSelect = 1 '------------------------------------------------- 'CSV ファイルを読み込み ListBox に表示 ' http://hanatyan.sakura.ne.jp/patio/read.cgi?mode=view2&f=163&no=4 のコードを流用 Dim intFileNo As Integer 'ファイルNo Dim TextLine As String Dim CellsData As Variant intFileNo = FreeFile 'シーケンシャル入力モードで Test.csv をオープン 'ファイルのPATHは別途設定して下さい。 Open "Test1.csv" For Input As #intFileNo Do Until EOF(intFileNo) 'EOF(intFileNo)が True になるまで実行 Line Input #intFileNo, TextLine '1行全体を変数に読み込む TextLine = Replace(TextLine, Chr$(34), "") ' "" を取り除く CellsData = Split(TextLine, ",") 'カンマ区切りで列データを分割 List1.AddItem CellsData(4) Loop Close #intFileNo End Sub
Private Sub Command1_Click() ' http://hanatyan.sakura.ne.jp/vbhlp/listcont.htm 'すべての項目を選択状態にする 選択状態を解除する のコード部分を流用 Frg1 = Not Frg1 Dim Ret As Long If Frg1 = True Then 'すべての項目を選択状態にする Ret = SendMessage(List1.hWnd, LB_SETSEL, 1&, ByVal -1&) Else '選択状態を解除する Ret = SendMessage(List1.hWnd, LB_SETSEL, 0&, ByVal -1&) End If End Sub
Private Sub Command2_Click() ' http://hanatyan.sakura.ne.jp/vbhlp/listcont.htm '複数の項目を選択した場合の取得 の部分のコードを流用 List2.Clear Dim ICount As Integer For ICount = 0 To List1.ListCount - 1 If List1.Selected(ICount) Then List2.AddItem List1.List(ICount) End If Next ICount End Sub
使用コントロール類と配置図及び実行結果(画像をクリックすると元のサイズで見る事ができます。)
|