tagCANDY CGI VBレスキュー(花ちゃん) - VBレスキュー(花ちゃん)の投稿サンプル用掲示板 - Visual Basic 6.0 VB2005 VB2010
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ
VBレスキュー(花ちゃん)の投稿サンプル用掲示板
     サンプル投稿用掲示板  VB2005 〜 用トップページ  VB6.0 用 トップページ
ListBoxにCSVデータを表示し、選択項目を取り出す(VB6.0) ( No.0 )  [親スレッドへ]
日時: 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


使用コントロール類と配置図及び実行結果(画像をクリックすると元のサイズで見る事ができます。)



 [スレッド一覧へ] [親スレッドへ]