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

A 回答 (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

この回答への補足

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

補足日時:2000/12/11 11:09
    • good
    • 0
この回答へのお礼

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

お礼日時:2001/01/03 11:52

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

今、見られている記事はコレ!

おしトピ編集部からのゆる~い質問を出題中

お題をもっとみる

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


このカテゴリの人気Q&Aランキング

おすすめ情報

カテゴリ