エクセルでワークシートに貼ったコマンドボタンをクリックするとユーザーフォームを呼び出してかつ、ユーザーフォーム上のコンボボックスに指定フォルダ下のフォルダを表示するものを作りました。
ユーザーフォーム上のコンボボックスに表示されたフォルダを切替選択するとリストボックスにそのフォルダ下のファイルを表示させたいのですがやり方がわかりませんので教えてください。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

ご提示のソースコードを見る限り、ユーザーフォームがどうのこうのと


言う以前にプログラムが、でたらめです。
-dir()関数やGetAttr()関数の意味や使い方をちゃんと調べて、理解してますか?
もっと基本的な事として、if... then ... やDo While ... loop
の用途や構文についても、分かってないようです。
まず、VBAでフォルダーやファイルの情報を取得する方法を、調べましょう。Googleで「vba ファイルシステムオブジェクト」をキーワードにして調べるとたくさんヒットします。
 調べたサンプルコードを十分理解できたら、フォームの操作にいどんで下さい。

時間がないなら、丸投げのお願いをしてみる事です。
    • good
    • 0
この回答へのお礼

> Googleで「vba ファイルシステムオブジェクト」をキーワードにして調べるとたくさんヒットします。

Googleで検索後、すっきりしたコードになりました。
ありがとうございました。

お礼日時:2009/05/29 18:52

「指定フォルダ下のフォルダを表示するものを作りました。


という事は、指定フォルダ下のファイル一覧の取得方法もご存知ですよね(あなたがどのように取得しているかは、わかりませんが)。
それなら、
Sub ComboBox1_Change()
の中で、まずListBoxをクリアして
ListBox.Clear
選ばれたフォルダー下のファイル名をファイルの数分、ListBoxの
Itemに追加するだけ
ListBox.AddItem i
ListBox.List(i) = ファイル名
注意)初歩的な説明は省いています。
※フォルダー名やファイル名の取得方法が分からないなら、また聞いて下さい。
※このユーザーフォームの用途がわかりませんが、指定したフォルダー下のファイルを表示したり、選ばせたりするダイアログ(フォーム)は、自分で作らなくても、提供されてます。

この回答への補足

ワークシートに貼ったコマンドボタンのプログラムは下記ですが
Private Sub CommandButton1_Click()
Dim mdir As String
MAINDIR = "D:\"
mdir = Dir(MAINDIR, vbDirectory)
Do While mdir <> ""
If myear <> "." And myear <> ".." Then
If (GetAttr(MAINDIR & mdir) And vbDirectory) = vbDirectory Then
With UserForm2.ComboBox1
.AddItem mdir
.Value = mdir
End With
End If
End If
mdir = Dir
Loop
UserForm2.ComboBox1.Style = fmStyleDropDownList
UserForm2.Show
End Sub
ユーザーフォームの方でうまくいかないです。教えてください。

補足日時:2009/05/29 03:16
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード


人気Q&Aランキング