
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
この回答への補足
回答ありがとうございます。
ただ、その方法は私も知っていまして...
見た目などを考えて標準のものを使用したいんです。
APIなどを使用する必要があるのでしたらご存知の方は教えていただけないでしょうか。
この件はご存知の方がいないようなので締めきろうと思います。
今後のVBの新しいバージョンかSPに期待したいと思います。
回答ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA シートのボタン名を変更し...
-
VBA(エクセル)で自動的にボタン...
-
セルをマクロのボタンにしたい。
-
ユーザーフォームに別シートか...
-
Excel VBA Application.caller...
-
フォルダ名称の取得の仕方
-
コマンドボタンやイメージにマ...
-
テラパッドを使ってるんですが...
-
C#プログラムで、ボタンをショ...
-
プロシージャからイベントをコ...
-
[Excel VBA]コマンドボタンの入...
-
VB 電卓 数字キーを押して...
-
見えないボタンを作って、押さ...
-
excel シート上のボタンが動かない
-
Excel マクロ 閉じるボタン
-
ボタンをマウスで押し続けたと...
-
ボタンの表示を改行表示したい
-
キーボード入力で、各ボタンに...
-
VBAでオプションボタンによって...
-
Button(コントロール)を半透明...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA シートのボタン名を変更し...
-
VBA(エクセル)で自動的にボタン...
-
ユーザーフォームに別シートか...
-
セルをマクロのボタンにしたい。
-
コマンドボタンやイメージにマ...
-
VBA CommandButtonの文字ずれ
-
Excel VBA Application.caller...
-
フォームの再読み込み
-
VB.net でトグルボタンを実現し...
-
Excel マクロ 閉じるボタン
-
[VB.net] ボタン(Flat)のEnable...
-
VBAのボタンの位置が変わって困...
-
プロシージャからイベントをコ...
-
閉じると「+」になり開くと「-...
-
ボタンをマウスで押し続けたと...
-
C#プログラムで、ボタンをショ...
-
VBAで多数のプログラムを一つの...
-
Access VBA でデータペーストを...
-
アイコンとボタンの違い
-
ボタン
おすすめ情報