VB6.0用掲示板の過去のログ(No.2)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [管理用]

投稿日: 2005/11/30(Wed) 23:03
投稿者kazuki
Eメール
URL
タイトルRe: ツリービューでフォルダのキーを取得

> 後は下記3ヶ所 myFile → myFile.Name のように変更すればいいのでは。
>
> Set Node1 = TreeView1.Nodes.Add(, , "A" & FavoriteFileNum, myFile.Name)
> Set Node1 = TreeView1.Nodes.Add("B" & FolderNum, tvwChild, "C" &
amp; FileNum, myFile.Name)
> Set NodX = TreeView1.Nodes.Add(, , "B" & FolderNum, mySubFolder.Name)
えっと、最初に乗せたプログラムだと
フォルダ1
|−フォルダ2
|−フォルダ3
 |−フォルダ4
フォルダ4はフォルダ3の中に確か入りませんでした。
そこでキーの取得について今日質問させていただきました。
いなさんに教えてもらったキーの取得方法を利用し、深い階層にあるフォルダもとりあえず正常に表示
することができました。一応下にそのプログラムを書いておきます。ただ、お気に入りの下にあるフォ
ルダが一番下に表示されていたり、自分としては気になるところが多々あるので未完成といえば未完成
ですが。。。とりあえず正常に表示されたので安心です。
明日からテストなので正常に表示されなかったらテスト勉強そっちのけでVBをやるところでした^^;


Private Sub sFolderSearch2(ByVal myFolder As Object, Flg)
    Dim mySubFolder As Folder
    Dim myFile      As File
    
    '現在のフォルダ内のファイルを取得
    For Each myFile In myFolder.Files
        FileNum = FileNum + 1
        If Flg = False Then
            Set Node1 = FavoriteBox.Nodes.Add("Root", tvwChild, "C" &
FileNum, myFile.Name)
        Else
            Set Node1 = FavoriteBox.Nodes.Add(Header, tvwChild, "C" & FileNum,
myFile.Name)
        End If
    Next
    
    With myFolder
        'サブフォルダ数を取得
        If .SubFolders.Count > 0 Then
            For Each mySubFolder In .SubFolders
                FolderNum1 = FolderNum1 + 1
                If myFolder = (CreateObject("WScript.Shell").SpecialFolders("F
avorites"))
Then
                    Set Node1 = FavoriteBox.Nodes.Add("Root", tvwChild, "B&quo
t; & FolderNum1,
mySubFolder.Name)
                    FavoriteBox.Tag = Node1.Key
                Else
                    Set Node1 = FavoriteBox.Nodes.Add(Header, tvwChild, "B" & F
olderNum1,
mySubFolder.Name)
                    FavoriteBox.Tag = Node1.Key
                End If
                'サブフォルダがある場合再帰的に繰り返す
                Header = FavoriteBox.Tag
                Call sFolderSearch2(mySubFolder, True)
                              
            Next
        End If
    End With

    'おそらく添え字?がだめっぽいからそこらへんをがんばる

    Set myFile = Nothing
    Set mySubFolder = Nothing
End Sub


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- VBレスキュー(花ちゃん) - - Web Forum -