![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
いつもお世話になっております。
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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルVBA Workbook変数に変数を使ったファイル名を格納したい 5 2023/06/13 14:46
- Visual Basic(VBA) エクセルVBA 既存エクセルを開きその中のシートとしてCSVファイルを開く 3 2023/05/31 13:11
- Visual Basic(VBA) エクセルのマクロについて質問があります。 現在は下記のマクロでエクセル表を保存しています ThisW 2 2022/09/16 11:22
- Excel(エクセル) フォルダ階層が深いファイルの拡張子の一括変換 2 2022/12/23 18:40
- Visual Basic(VBA) DisplayAlertsブロパティで ”実行時エラー424オブジェクトが必要です” 5 2022/05/15 18:02
- その他(Microsoft Office) office2010とoffice365の共存でoffice365を優先で起草させたい 3 2023/01/24 10:47
- Visual Basic(VBA) あるフォルダーのファイルを違う親フォルダーのサブフォルダーに移したい 11 2023/02/15 19:00
- Visual Basic(VBA) 入力ボックスが繰り返しポップアップして止まらない。 下記コードでファイル名の変更をしたいのですが、変 1 2022/09/08 11:27
- Excel(エクセル) フォルダ内のエクセルファイルを開かずにデータ採取する関数式 2 2022/12/22 22:15
- Access(アクセス) Access2016のExcelインポートの機能のことで教えてください 1 2022/09/11 14:58
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCEL VBA 指定したファイルが...
-
Excelで漢字人名が勝手に並び変...
-
エクセルマクロで不特定なファ...
-
フォルダ内のexcelファイルを順...
-
マクロでのファイル間のシート...
-
エクセルのシートの数を数えた...
-
VBAでフォルダ内の全てのcsv...
-
accessフォルダを移動したらフ...
-
VLookupで参照する範囲を変数で...
-
エクセルのxls形式からxlsx形式...
-
VBAでワークブックの名前を変数...
-
エクセルマクロ 異なるファイ...
-
データ参照先が別ファイルの場...
-
Excel VBA でファイルが開かれ...
-
エクセルVBAで送る操作
-
ファイルを開かずにマクロを実行
-
【マクロ】名前を保存する際に...
-
エクセル 複数ファイルの一括...
-
LTSpiceにLMV358-Nのモデルを入...
-
エクセル(マクロ)のファイル...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCEL VBA 指定したファイルが...
-
エクセルマクロで不特定なファ...
-
フォルダ内のexcelファイルを順...
-
VBAでワークブックの名前を変数...
-
エクセル(マクロ)のファイル...
-
エクセルのxls形式からxlsx形式...
-
エクセル 複数ファイルの一括...
-
エクセルのシートの数を数えた...
-
【Excel VBA】ファイル名が一...
-
【マクロ】名前を保存する際に...
-
ファイルを開かずにマクロを実行
-
accessフォルダを移動したらフ...
-
フォルダ内のブック全部にパス...
-
vlookup関数の引数を変数で指定...
-
Excel VBA でファイルが開かれ...
-
ファイルの保存場所を変えたら...
-
Accessのaccdbファイルを起動で...
-
リンク切れチェックを行うマクロ
-
エクセルマクロ 異なるファイ...
-
データ参照先が別ファイルの場...
おすすめ情報