tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板 [ツリー表示へ]   [Home]
一括表示(VB6.0)
タイトルDirlistbox 目的フォルダまでスクロール
記事No15678
投稿日: 2013/04/30(Tue) 10:15
投稿者大顔悩
表題にもあるようにDirlistboxの目的フォルダまでスクロールする方法を考えています。
頭に「P」のつくフォルダだけを表示したいのですが、FilelistboxのようにPatternがないのでできないと思います。
ならばせめて「P」のつくフォルダまでスクロールできないかと思っていますが、いろいろ調べてもこれといったものが検索でヒットしません。
何かいい方法が無いでしょうか?

ちなみに環境はwin7 PRO でVB6 で作成しています。

[ツリー表示へ]
タイトルRe: Dirlistbox 目的フォルダまでスクロール
記事No15679
投稿日: 2013/04/30(Tue) 17:57
投稿者VBレスキュー(花ちゃん)
> 頭に「P」のつくフォルダだけを表示したいのですが、FilelistboxのようにPatternがないのでできないと思います。
> ならばせめて「P」のつくフォルダまでスクロールできないかと思っていますが、いろいろ調べてもこれといったものが検索でヒットしません。


案1.Dirlistbox の代わりに ListBox を使用してフォルダーの検索結果を表示する。
案2.前もって P の付くフォルダーを検索して調べておいて、そのパスをDirlistbox に指定する

ドライブ直下のフォルダーでも瞬時に作成することができます。
http://www.hanatyan.sakura.ne.jp/vbhlp/fso14.htm

Private Sub Command1_Click()
    Dim Fso As New FileSystemObject
    Call sFolderSearch(Fso.GetFolder("c:\"))
End Sub
Private Sub sFolderSearch(ByRef myFolder As Folder)
    Dim mySubFolder As Folder
    With myFolder
        If .SubFolders.Count > 0 Then
            For Each mySubFolder In .SubFolders
                If LCase(Left$(mySubFolder, 4)) = "c:\p" Then
                    'どちらかお好きな方を
                    Dir1.Path = mySubFolder
                    List1.AddItem mySubFolder
                End If
            Next
        End If
    End With
End Sub

[ツリー表示へ]
タイトルRe^2: Dirlistbox 目的フォルダまでスクロール
記事No15680
投稿日: 2013/05/01(Wed) 12:58
投稿者大顔悩
回答ありがとうございます。
やはり Dirlistbox ではうまくいかないようですね。

実は今朝、回答の内容と似たものを、コンボボックスで作ったところです。

コンボボックスで選んだフォルダを Dirlistbox で開くようにしました。

本当は Dirlistbox だけでできれば一番よかったのですが、
おかげでこれ以上無駄な時間をかけずに済みました。

ありがとうございました。


> > 頭に「P」のつくフォルダだけを表示したいのですが、FilelistboxのようにPatternがないのでできないと思います。
> > ならばせめて「P」のつくフォルダまでスクロールできないかと思っていますが、いろいろ調べてもこれといったものが検索でヒットしません。
>
>
> 案1.Dirlistbox の代わりに ListBox を使用してフォルダーの検索結果を表示する。
> 案2.前もって P の付くフォルダーを検索して調べておいて、そのパスをDirlistbox に指定する
>
> ドライブ直下のフォルダーでも瞬時に作成することができます。
> http://www.hanatyan.sakura.ne.jp/vbhlp/fso14.htm
>
> Private Sub Command1_Click()
>     Dim Fso As New FileSystemObject
>     Call sFolderSearch(Fso.GetFolder("c:\"))
> End Sub
> Private Sub sFolderSearch(ByRef myFolder As Folder)
>     Dim mySubFolder As Folder
>     With myFolder
>         If .SubFolders.Count > 0 Then
>             For Each mySubFolder In .SubFolders
>                 If LCase(Left$(mySubFolder, 4)) = "c:\p" Then
>                     'どちらかお好きな方を
>                     Dir1.Path = mySubFolder
>                     List1.AddItem mySubFolder
>                 End If
>             Next
>         End If
>     End With
> End Sub

[ツリー表示へ]