質問: フォルダ名称の取得の仕方 コモンダイアログコントロールを使用してフォルダ名称のみを取得する方法を教えてください(wordなどで規定のフォルダを指定するときのような機能です)。 よろしくお願いします。
回答: あんまり自信ないんですが、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