- 締切済み
フォルダ名称の取得の仕方
コモンダイアログコントロールを使用してフォルダ名称のみを取得する方法を教えてください(WORDなどで規定のフォルダを指定するときのような機能です)。 よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- ARC
- ベストアンサー率46% (643/1383)
あんまり自信ないんですが、VBの範囲ではできないんじゃないかなぁ。APIとか、使ってやる必要があるかも… ちなみに、同様の機能を持ったフォームなら、すぐに出来ますよ(最近作った)。 フォーム上にドライブリストボックス(Drive1)と、ディレクトリリストボックス(Dir1)、そして、ボタンを二つ(決定ボタン,キャンセルボタン)を配置して、以下のようなコードを記述します。 -+-+-+-+ Option Explicit Dim mResult As FolderSelectResultEnum Public Enum FolderSelectResultEnum Canceled = 0 Selected = 1 End Enum '最後に押されたボタンを返す。 Property Get Result() As FolderSelectResultEnum Result = mResult End Property '選択されたフォルダを取得、設定する Property Let Path(strPath As String) Me.Dir1.Path = strPath End Property Property Get Path() As String Path = Me.Dir1.Path End Property 'ドライブ変更時の処理 Private Sub Drive1_Change() Me.Dir1 = Me.Drive1 End Sub Private Sub Form_Unload(Cancel As Integer) '×ボタンで終わる時は、キャンセル If Me.Visible = True Then Cancel = True End If Me.Visible = False End Sub Private Sub キャンセルボタン_Click() mResult = Canceled Me.Visible = False End Sub Private Sub 決定ボタン_Click() mResult = Selected Me.Visible = False End Sub -+-+-+-+ そして、こんな感じで呼び出します。 Private Sub フォルダ選択_Click() Dim FSel As New frmFolderSelect '表示されるフォルダの初期値 FSel.Path=Curdir() 'モーダルフォームとして表示 FSel.Show 1 '結果を取得 If FSel.Result = Selected Then MsgBox FSel.Path Else MsgBox "キャンセルされました" End If End Sub
お礼
この件はご存知の方がいないようなので締めきろうと思います。 今後のVBの新しいバージョンかSPに期待したいと思います。 回答ありがとうございました。
補足
回答ありがとうございます。 ただ、その方法は私も知っていまして... 見た目などを考えて標準のものを使用したいんです。 APIなどを使用する必要があるのでしたらご存知の方は教えていただけないでしょうか。