便利といえば便利。特定ディレクトリ以下の検索をする場合、こちらを使用した方が速いかも。リストボックスの Visible を False にして値を取るという方法もありかと。その他、データをソートさせたい時はリストボックスにソートさせて値を取ると非常に楽。その時は当然リストボックスの Visible は False である。
'リストボックス
'コントロール識別子取得
Private Const DDL_ARCHIVE = &H20 'アーカイブファイル Private Const DDL_DIRECTORY = &H10 'サブディレクトリ Private Const DDL_DRIVES = &H4000 'ドライブ Private Const DDL_EXCLUSIVE = &H8000 '指定された属性を持つファイル。デフォルトは、読み書き専用 Private Const DDL_HIDDEN = &H2 '隠しファイル Private Const DDL_READONLY = &H1 '読取専用ファイル Private Const DDL_READWRITE = &H0 '他の属性を持たない、読み書き可能なファイル Private Const DDL_SYSTEM = &H4 'システムファイル Private Const DDL_POSTMSGS = &H2000 'ポストメッセージをアプリケーションキューに送る '--------------------------------------------------------------------------- ' 関数名: AddTargetFile ' 機能 : リストボックスに検索したファイルを追加する ' 引数 : (in)hParent … 呼び出しウィンドウのハンドル ' (in)hList … リストボックスのハンドル ' (in)Target … 検索対象ファイル ' 返り値: 1…正常終了 0…異常終了 '--------------------------------------------------------------------------- Public Function AddTargetFile(ByVal hParent As Long, ByVal hList As Long, _ ByVal Target As String) As Long 'ファイルとディレクトリを取得 AddTargetFile = DlgDirList(hParent, Target, GetDlgCtrlID(hList), 0&, _ DDL_READWRITE Or DDL_DIRECTORY) End Function 呼び出し側。 Private Sub Form_Load() Call AddTargetFile(Me.hWnd, List1.hWnd, Environ("WINDIR") & "\*.txt") End Sub |