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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロコードの一部分を変更する方法について教えてください。 2 2023/02/17 08:40
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/20 10:00
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Excel(エクセル) Excel VBA 指定フォルダに格納されている全エクセルファイルに指定シートを挿入する方法について 1 2022/08/22 11:53
- Visual Basic(VBA) エクセルのマクロについて教えてください。 3 2023/07/01 10:35
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/21 13:29
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/21 09:28
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/05/24 08:33
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/02/21 11:19
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/20 16:59
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA シートのボタン名を変更し...
-
フォームの再読み込み
-
Access VBA でデータペーストを...
-
ユーザーフォームに別シートか...
-
セルをマクロのボタンにしたい。
-
.NET(VB)でボタンの連打を防止...
-
プロシージャからイベントをコ...
-
VBA(エクセル)で自動的にボタン...
-
F10ボタンでMsgboxを開くとwind...
-
他フォームのクリックイベント取得
-
エクセルVBAでユーザーフォーム...
-
オプションボタンによっての表...
-
Excel マクロ 閉じるボタン
-
動的に作成したボタンオブジェ...
-
ボタンの状態
-
button をクリックしてもへこま...
-
ボタンコントロールの改行(Win...
-
【vb2005】 動的に作成されたCo...
-
初歩の質問です。
-
[Excel VBA]コマンドボタンの入...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA シートのボタン名を変更し...
-
VBA(エクセル)で自動的にボタン...
-
フォームの再読み込み
-
ユーザーフォームに別シートか...
-
VBA CommandButtonの文字ずれ
-
セルをマクロのボタンにしたい。
-
コマンドボタンやイメージにマ...
-
Excel VBA Application.caller...
-
VBAのボタンの位置が変わって困...
-
Access VBA でデータペーストを...
-
プロシージャからイベントをコ...
-
他のアプリケーションとの連携
-
閉じると「+」になり開くと「-...
-
C#で動的に作ったtextboxを消す。
-
ボタンをマウスで押し続けたと...
-
VBA でのボタンの移動について
-
ボタン
-
CommandButtonのCaptionを変化...
-
TextBoxでEnterキーを押すと、...
-
VB.net でトグルボタンを実現し...
おすすめ情報