
いつもお世話になっております。
VBA初心者ですが、どうぞよろしくお願いいたします。
UserForm1があり、
Form内にComboBox1,ComboBox2,TextBox1があります。
(1) ComboBox1には"C:\TestBook"のサブフォルダ名のリストを表示する。
(2) ComboBox2にはComboBox1で選択したサブフォルダ内のxlmファイルのリストを表示する。
C:\TestBookフォルダ内に、日付などのlog.txtがあります。
(3) log.txtの内容をTextBox1に表示させたいと考えています。
フォルダ内は以下のような感じです。
→ SubBooK1\ → test1.xls , test2.xls ,test3.xls ,test4.xls
C:\TestBook\ → SubBooK2\ → test5.xls , test6.xls ,test7.xls ,test8.xls
→ SubBooK3\ → test9.xls , test10.xls ,test11.xls ,test12.xls
参考サイトなどを調べてみましたが、
基本の学習が不足しているため、なかなか理解ができません。
おはずかしながら、お力をお貸しいただけないかと思います。
宜しくお願いいたします。
No.2ベストアンサー
- 回答日時:
初心者がやるには、難しすぎる課題と思う。
もっと勉強してから。VBAの本筋の学習の範囲外のことが多い(フォルダの扱いなど)。それと
(1)やるべきことが、文章で整理できて無いのではないか(丸投げしている)。何処まで調べたりやったのか?
例
フォルダのサブフォルダの捕らえかた
その中のファイルのとらえ方
ファイルの拡張子のとらえ方
コンボのアイテムへの反映の仕方
コンボのアイテムの選択のとらえ方
(2)ファイル関係を扱うのでVBScriptの学習が必要ではないか。
Dir関数で出来るかも知れないが、相当勉強が必要かとおもう。
>なかなか理解ができません。というより、VBA(に付随した事項)の経験や関係解説書読書(WEBでは照会)不足でしょう。
上記(1)もWEBで照会するとコード例が出てくると思う。
ーーー
>リストボックスの連・・
コンボボックスのミスタイプか?質問なのだから気をつけて。
ーー
テスト環境が質問者と同じに出来ないので、相当な改変が必要かもしれないので参考に。
ファイルのあるフォルダレベルから選択しないと下記は旨く動かないだろう。
だからそのフォルダ名はプログラムの中に決めてしまうケースが多いのではと思うが。
(日頃、ソフトを使っていて、プロの例を見ているのだが、始から格好よくは目指さないこと。)
ユーザーフォームにコンボを2つ貼り付け
UserFormをInitializeしたときの処理
Private Sub UserForm_Initialize()
Set objfs = CreateObject("scripting.filesystemobject")
Set objfolder = objfs.getfolder("C:\Documents and Settings\XXX\")
For Each objsubfolder In objfolder.subfolders
UserForm1.ComboBox1.AddItem objsubfolder
'MsgBox objsubfolder
Next
End Sub
コンボボックス1のクリックイベントに
Private Sub ComboBox1_Click()
x = ComboBox1.Value
Set objfs = CreateObject("scripting.filesystemobject")
Set objfolder = objfs.getfolder(x)
For Each fl In objfolder.Files
y = objfs.getextensionname("C:\Documents and Settings\XXX\My Documents\" & fl)
If y = "xls" Then
UserForm1.ComboBox2.AddItem fl
End If
Next
End Sub
有用なサンプルありがとうございます。
コンボボックスのクリックイベントのマクロは大変ありがたいです。
おっしゃられるように私にはまだまだ敷居の高いプログラム内容です。丸投げのような形になってしまい大変申し訳なく思っています。大変参考になりました。
No.1
- 回答日時:
大まかな仕様は理解できました。
しかし、貴方がどの部分で詰まっているのかが分かりません。
まずは連動を抜きにして考えます。
・コンボボックス1にサブフォルダの一覧を登録します。
・コンボボックス2に、例えば「SubBook1」内のフィル名リストを登録します。
・テキストボックスに、例えば「test1.xls」の内容を表示する
※ところで、ファイルが「xlm」だったり「xls」だったり「txt」だったりバラバラですが大丈夫なんでしょうか?
以上3点は自力で解決可能なのでしょうか?
その上で連動する部分がイマイチという状況なのでしょうか?
この回答への補足
説明不足で申しわけありません。拡張子の違いはこちらの記述間違いで、全てxlsです。わからない部分はコンボボックス1へサブフォルダ名の登録、、コンボボックス2との連動方法なのですが、プログラムが長くなるほど頭で整理ができなくなっています。
本来であれば、まだこのような処理は触れないほどのど素人です。ご迷惑をおかけしますが、ご指摘の3点もわからないものとしてご教授願えれば幸いです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【マクロ】名前を保存する際に...
-
フォルダ内のexcelファイルを順...
-
データ参照先が別ファイルの場...
-
EXCEL VBA 指定したファイルが...
-
【Excel VBA】ファイル名が一...
-
【マクロ】変数に入れるコード...
-
エクセルファイルを開く時、関...
-
フォルダ内のブック全部にパス...
-
エクセルマクロで不特定なファ...
-
Excelのマクロでファイルを開く...
-
エクセル 複数ファイルの一括...
-
ファイルの保存場所を変えたら...
-
エクセルマクロ 異なるファイ...
-
ワード2007で複数ファイル自動...
-
vlookup関数の引数を変数で指定...
-
ファイルを開かずにマクロを実行
-
ファイル名を変更するマクロ
-
EXCELマクロを無効にして開く方法
-
ACCESS VBAでファイルを開くダ...
-
word2007ファイル起動時のSQLに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【マクロ】変数に入れるコード...
-
【マクロ】EXCELで読込したCSV...
-
EXCEL VBA 指定したファイルが...
-
【マクロ】名前を保存する際に...
-
フォルダ内のexcelファイルを順...
-
エクセルマクロで不特定なファ...
-
【Excel VBA】ファイル名が一...
-
ファイルを開かずにマクロを実行
-
エクセル 複数ファイルの一括...
-
accessフォルダを移動したらフ...
-
ファイルの保存場所を変えたら...
-
データ参照先が別ファイルの場...
-
VBAでワークブックの名前を変数...
-
EXCELマクロを無効にして開く方法
-
フォルダ内のブック全部にパス...
-
エクセル(マクロ)のファイル...
-
エクセルファイルを開く時、関...
-
秀丸:あらかじめ設定した複数...
-
Excelのマクロでファイルを開く...
-
EXCEL VBAで作成した ファイル...
おすすめ情報