あるディレクトリ以下のフォルダやファイルを
エクスプローラ形式で表示させるにはどのようにしたらいいんでしょうか?
色々調べてTreeViewを使えばいいのかなと思うのですが、
その使い方がイマイチよくわかりません。
ツリー表示した物は特に何かに使うわけではありません。
ディレクトリを展開してファイルの一覧を確認するためのものです。
よろしくお願いします。
>色々調べて
ファイルやフォルダの検索はDir関数…過去ログに何度も出てきてます。
>TreeView〜その使い方がイマイチよくわかりません。
まずはヘルプを見てください。
ただ単にディレクトリを表示するだけなら、
ディレクトリリストボックスでできるのですが、
エクスプローラ風にしたいのです…
Dir関数よりコントローラを使った方がいいと書いてあったので、
TreeViewコントローラを使おうと思いました。
ヘルプで使い方を見たのですが、書いてある事がよく理解できなくて…
もう少しちゃんと読んでみます。。。
趣旨は違いますが、PAPA'n VB (ぱぱんぶぃびぃ) - HOMEの
ホームページにTreeViewのサンプルありますよ。
http://www.mitene.or.jp/~sugisita/index.html
okuさんありがとうございます!
でもさっき開いてみたのですが、
リンクが壊れていて(?)ページが見つかりませんってなってます…
もうちょっと時間をおいてみるか、再接続して見てみます〜
コントローラ???
TreeView はオブジェクトとかコントロールとか
呼ばれるけどコントローラ?オートメーションコントローラ?
…は関係ないか…
ごめんなさい。ボクの知識にはないです。
Dir 関数で調べたファイル名を地道に Nodes.Add() していく
方法しか知らないです。
>リンクが壊れていて(?)ページが見つかりませんってなってます…
関係ないですが改装中みたいですね
一番上の
MENU > HOME VB.NET VB6 VBA ソフトウェア リンク サイト情報
ってところからVB6を選べば過去のリンクに飛べるようです。
まるるうサンお世話になってます。
TreeViewコントロールの間違いです。
すみません。。
”Shell Objectsを使うとAPIを使わずに簡単に実現できる”
と書いてあるのを見つけました。
でも、このShell Objectsというのがまた何なのかよくわかりません…
オブジェクト変数を宣言して…という事なんでしょうか…
>MENU > HOME VB.NET VB6 VBA ソフトウェア リンク サイト情報
>ってところからVB6を選べば過去のリンクに飛べるようです。
ありがとーございます。
ちょっと辿ってみますね。
VBSの話みたいですが
>”Shell Objectsを使うとAPIを使わずに簡単に実現できる”
>と書いてあるのを見つけました。
…どこで見つけたんです?
[Visual Basic Script]
Option Explicit
' selfolder.vbs - フォルダ選択ダイアログサンプル
Const BIF_RETURNONLYFSDIRS = &H1
Const BIF_DONTGOBELOWDOMAIN = &H2
Const BIF_STATUSTEXT = &H4
Const BIF_RETURNFSANCESTORS = &H8
Const BIF_EDITBOX = &H10
Const BIF_VALIDATE = &H20
Const BIF_BROWSEFORCOMPUTER = &H1000
Const BIF_BROWSEFORPRINTER = &H2000
Const BIF_BROWSEINCLUDEFILES = &H4000
Dim objSA, objFol
Set objSA = WScript.CreateObject("Shell.Application")
Set objFol = objSA.BrowseForFolder(0, "フォルダを選択するのだ!", BIF_EDITBOX)
WScript.Echo objFol.Items.Item.Path
Set objSA = Nothing
↓この辺らしい
そうなんですよ。
どうやらVBSっぽい感じです…
APIを使わずにScriptでってことなんでしょうか?
>…どこで見つけたんです?
http://plaza5.mbn.or.jp/~heropa/vb211.htm
↑ここです。
ここのobjShellを宣言してる部分でつまずいてたんですが、
同じサイトの
http://www31.ocn.ne.jp/~heropa/cdemo.htm
↑ここに私のしたいような感じのサンプルがありました!!
色々探してたら出てきました。。
色々と説明不足で分かり難いのに、お返事して下さってありがとうございました。
とりあえず、まるるうサンのお返事とこのサンプルを元にやってみます。
またわからない事があったらお尋ねするかもしれませんが、
よろしくお願いします!!
ありがとうございました〜☆
解決チェック忘れてました…(−−;)
HEROPA's HomePageさんのHPですね。
自分もここのHPはかなり勉強になりました。
>ここのobjShellを宣言してる部分でつまずいてたんですが、
ちゃんと参照設定しましたか?
Microsoft Shell Controls And Automationを
参照設定するように書かれてますよ。
PAPA'n VB (ぱぱんぶぃびぃ) - HOMEのサイトですが
VB6をクリックしてください。そこのコモンコントロールに
TreeViewのサンプルがあります。
一応直リン張っときます。
http://www.mitene.or.jp/~sugisita/vb6.html
お世話になってます!
okuサンわざ2リンクありがとーございます!
今サンプルを解析中です…
他の事もあり、あまり進んでないんですが…
全部表示ではなく、指定したディレクトリ以下のみを
常に表示するようにしたいので。
>ちゃんと参照設定しましたか?
>Microsoft Shell Controls And Automationを
>参照設定するように書かれてますよ。
これなんですが、私の環境には(VB6)
Microsoft Shell Controls And Automationがないんですよ…
人のPCを使ってるのですが、参照環境一覧の中に見当たりません…
そこで近くの人に見せてもらうとSHELL32.dllというファイルを参照してました。
でもそのファイル自体がなくて…
なんかよくわからない事になってます…
検索すると出てくるんですが、参照の時にはありません。
設定でdllファイルを見えないようにでもしてあるんでしょうか…
PCの持ち主にちょっと聞いてみようと思います。
> Microsoft Shell Controls And Automationがないんですよ…
Shellオブジェクトを使用するには、SHELL32.DLL Ver.4.7x以上が必要です。
4.00などの古い環境では使用できません。
> そこで近くの人に見せてもらうとSHELL32.dllというファイルを参照してました。
[Microsoft Shell Controls And Automation]が含まれるライブラリは、IEのバージョンによって異なります。最近の環境では Shell32.dll ですが、古い環境ではSHDOCVW.DLL、その後、SHDOC401.DLL に含まれるようになり、現在のOSでは Shell32.dll に統合された…という経緯があります。
OSはもしかしてNTですか?
それだとSHELL32.DLLのデフォルトバージョンは4.00だったはず。
現在SHELL32.DLLをバージョンアップする事は多分無理ですので、
特攻隊長まるるうさんが書いたようにDir関数で
階層を調べればいいと思います。
多分無理と言った理由は、Internet Explorer4.0をシェル統合で
インストしないと駄目みたいなのですが4.0なんかもう手に入らないし。
なのでDir関数やFileSystemObject オブジェクトなど
ディレクトリ階層を調べる方法はいくらでもあるので、
出来る方法でやってみてください。
魔界の仮面弁士サン、okuサンありがとーございます。
OSはNTでIEは5.5です。
サイトにIE4.0以上で動作可能って書いてあったんで、
大丈夫かなって思ったんですけど、古過ぎのようですね…
バージョンによって参照環境が違うんですねー!
色々と勉強になりました!
教えていただいた方法を色々と試してやってみます!
ありがとーございました☆
ツイート | ![]() |