No.1ベストアンサー
- 回答日時:
こんにちは。
maruru01です。フォルダ選択のAPI
SHBrowseForFolder
を使用します。
フォルダ名を返す関数を参考までに。
標準モジュールに、
Public Type BROWSEINFO
hwndOwner As Long
pidlRoot As Long
pszDisplayName As String
lpszTitle As String
ulFlags As Long
lpfn As Long
lParam As Long
iImage As Long
End Type
Public Declare Function SHBrowseForFolder Lib "shell32" (lpbi As BROWSEINFO) As Long
Public Declare Function SHGetPathFromIDList Lib "shell32" (ByVal pIDL As Long, ByVal pszPath As String) As Long
'API使用のフォルダー指定ダイアログ
'Msg:ダイアログのタイトル
'Frm:使用するフォーム(通常はMeを指定)
Public Function GetFolder(Msg As String, Frm As Form) As String
Const MAX_PATH = 260
Dim lngRetValue As Long
Dim strBuffer As String * MAX_PATH
Dim strPathBuffer As String * MAX_PATH
Dim udtBrowseInfo As BROWSEINFO
Dim ReturnPath As String
Dim rt As String
strBuffer = String(Len(strBuffer), vbNullChar)
strBuffer = App.Path & vbNullChar
If Msg = "" Then
Msg = "フォルダーを指定してください。"
End If
With udtBrowseInfo
.hwndOwner = Frm.hWnd
.pidlRoot = &H0
.pszDisplayName = strBuffer
.lpszTitle = Msg & vbNullChar
.ulFlags = &H1
.lpfn = 0
.lParam = 0
.iImage = 0
End With
lngRetValue = SHBrowseForFolder(udtBrowseInfo)
If lngRetValue <> 0& Then
lngRetValue = SHGetPathFromIDList(lngRetValue, strPathBuffer)
If lngRetValue = 0 Then
rt = ""
Else
ReturnPath = Left(strPathBuffer, InStr(strPathBuffer, vbNullChar) - 1)
rt = ReturnPath
End If
Else
rt = ""
End If
GetFolder = rt
End Function
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 動かなくなってしまった古いVBAを動くようにしたい 8 2022/09/20 13:57
- iCloud iPadでiCloud ドライブ内のファイル名 変更 2 2023/04/19 10:57
- 個人事業主・自営業・フリーランス 情報系の国家資格は研修費に計上できますか?できませんか? 1 2022/04/24 11:26
- その他(開発・運用・管理) おんどとりWebStorage APIから温度情報を取得し表示したい 2 2023/08/03 09:53
- 人事・法務・広報 社内メールを盗み見ることは違反行為になりますか? 噂好きの情報通の社員がおり、その社員は管理職のメー 4 2023/07/15 16:48
- PDF AutoCAD図面をPDF fileに変換した際、画像情報やブロック名はわかるのでしょうか。 1 2022/06/03 09:42
- PHP phpのエラーについて 1 2022/06/27 22:30
- JavaScript WordPressのコンタクトフォーム7にて送信者の位置情報を送らせたい 2 2022/09/14 23:28
- PHP バージョン情報の取得方法について 1 2023/03/15 11:56
- その他(暮らし・生活・行事) 情報の取捨選択の仕方 2 2023/06/22 16:45
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Windows10でコマンドプロンプト...
-
VBSでファイル名と同じフォルダ...
-
VBA 最新のフォルダ取得
-
vbsで選択ダイアログを表示した...
-
サーバ内のフォルダ名と各フォ...
-
Excelで指定したフォルダに保存...
-
ファイル名と同名のフォルダを...
-
ACCESS VBAからのファイル削除
-
windowsでテキストファイルの各...
-
フォルダにリンクを貼りたい
-
多量のファイルをフォルダに自...
-
ホームページビルダーで新しい...
-
excel VBA Dirにて検索したフォ...
-
Excelvbaでブックをコピー名前...
-
ファイルとフォルダのどちらも...
-
AIX findコマンド
-
VBAでExcelのBookの串刺し集計
-
C言語でのフォルダ作成
-
フォルダ選択ダイアログ:ネッ...
-
30日前を残して過去の日付フォ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Windows10でコマンドプロンプト...
-
パス名に2バイト文字(マルチバ...
-
ファイル名と同名のフォルダを...
-
VBA 最新のフォルダ取得
-
Excelのハイパーリンクについて...
-
デスクトップの画像をhtmlに表...
-
ディレクトリ名変更してコピー...
-
VBA フォルダ名に特定の文字を...
-
バッチファイルで指定フォルダ...
-
フォルダ内のPDFファイル名を変...
-
Access VBA で フォルダ権限...
-
excelマクロ 冒頭3文字が一致す...
-
【マクロ】ファイル名の日付に...
-
フォルダにリンクを貼りたい
-
会社のネットワーク上のファイ...
-
多量のファイルをフォルダに自...
-
C ファイル出力で、フォルダが...
-
保存先のフォルダ名を指定した...
-
vbsで選択ダイアログを表示した...
-
Excel VBA 同じ名前のフォルダ...
おすすめ情報