• 締切済み

フォルダ名称の取得の仕方

コモンダイアログコントロールを使用してフォルダ名称のみを取得する方法を教えてください(WORDなどで規定のフォルダを指定するときのような機能です)。 よろしくお願いします。

みんなの回答

  • ARC
  • ベストアンサー率46% (643/1383)
回答No.1

あんまり自信ないんですが、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

ykymtkt
質問者

お礼

この件はご存知の方がいないようなので締めきろうと思います。 今後のVBの新しいバージョンかSPに期待したいと思います。 回答ありがとうございました。

ykymtkt
質問者

補足

回答ありがとうございます。 ただ、その方法は私も知っていまして... 見た目などを考えて標準のものを使用したいんです。 APIなどを使用する必要があるのでしたらご存知の方は教えていただけないでしょうか。

関連するQ&A