- 締切済み
VBAにてツリー階層表示ツールの作成
添付画像のような構成のフォルダがあります。 Testというのが親フォルダです。 各フォルダにはそれぞれテキストファイルを持っており、各フォルダの名称が記入されています。 エクセルVBAにてこの親フォルダを読み込み、ツリー構造をxls形式にて書きだすようなツールを作ろうと考えておりますが、可能でしょうか? エクセルにて欲しい出力は下記のような形です。 A B C 1 A1名称 B1名称 C1名称 ※名称はフォルダ内テキストファイルから読み込む 2 A1名称 B1名称 C2名称 3 A1名称 B2名称 C1名称 ・ ・ 条件 ■ツリーの深さはC階層までしか存在しませんが、ABC共に数は一定しません。 ■各フォルダ内テキストファイルの中の一定の箇所に名称が記述されていますので、それを抜き出して表示に使用したいです(先頭から24Byte 固定長24Byte) VBAの勉強をしてみまして、指定したテキストファイルからのテキストの抜き出しはできたのですが、その先でつまずきました。 このツールがVBAにて作成できるのか、またできない場合、何を使って作成したらよいかご教示下さい。 よろしくお願い致します。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- mitarashi
- ベストアンサー率59% (574/965)
リンク先の様な事でしょうか。 http://okwave.jp/qa/q5717655.html 必要なら縦線も入る様にしたコード (元のコードを読解する才覚が無いので自分なりに焼き直したもの) もあります。
- toshihiko_104
- ベストアンサー率61% (8/13)
指定したテキストファイルからのテキストの抜き出しはできたということなので フォルダ名の取得部分が残っているんですよね であれば、以下のサイトにフォルダ名の取得部分がわかりやすく書いてありますので 参考にしてみてはいかがでしょうか [☆ Excelでお仕事!]-[VBA応用(フォルダ内のファイル一覧の取得)] http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_110_080.html ※上記がリンク切れだった場合 [☆ Excelでお仕事!]-[トップページ] http://www.asahi-net.or.jp/~ef2o-inue/top01.html
- imogasi
- ベストアンサー率27% (4737/17069)
質問者のプログラム技量次第でしょう。VBAはVB6系統でVB6で出来ることは出来る場合がある。 エクセルに関連付けてやる場合はVB6では難しい。エクセルVBAの特徴は、エクセルを扱うオブジェクト、メソッド、プロパティ があること。 エクセルVBAだからといって、この課題に対し、良い助力(適した仕組み)も得られないと思う。 こういうユティリティ・オリエンテッドな問題は、自分でロジックやアルゴリズムを考えないといけない。 この課題に対し、このコーナーに、丸投げで質問する(自分の出来ない課題点が絞れていない)こと自体が、まだそこまで力が付いてない証拠でしょう。 ーー やったこと無いが、 エクセルのツールバーを出してコントロールのその他(金槌とスパナ?のアイコン)を指定し、そこで出てくる、 MicrosoftTreeViewControl があれば、その使い方でも勉強したらどうです。 これが課題には近い仕組みのようだが目的によっては不適かもしれない。使うならWEBやコントロールの本を調べてみるとか。 >VBAの勉強をしてみまして 一般には、他でプログラムのプロもいるかもしれないが、これぐらいのレベルでやる課題ではないと思うが。 それに質問前半の表現がよくわからない。 >xls形式にて書きだすような の意味は? ツリー構造の図示は、どこへ、どのようにするか質問に説明してますか。 シートの上にボックスでも並べて、結線でもしたいのかな。 目的は何用に使うのかな? >エクセルにて欲しい出力は下記のような形です。 セルにデータをならべただけのように見えるがツリー構造はどう表されているのですか。 == (1)その前にフォルダの中のファイルを読んで、(取捨選択が必要?)、各テキストファイルの必要データを切り出し(とりあえずテスト的に)シートのセルに、べた並べするプログラムは出来たのかな。それが先決。 (2)その後、見てくれ的に表示位置などを整えるのは次の問題でしょう(難しいのはこちらだが)。
お礼
回答が遅くなりましてすみません。 書き方が悪かったのですが、ツリー構造を表す線は今回は必要ありませんでした。 ですので、まずは回答(1)の必要データの切り出しをするプログラムを作ってみようと思います。 ありがとうございました。
お礼
回答が遅くなりましてすみません。 上記サイト内のコードを色々試してみまして、希望の物に近い形が見つかりました。 わかり易いサイトをご紹介していただきありがとうございます。 これを元に自分で色々試してみます。 ありがとうございました。