投稿日 | : 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