Access2000でコモンダイアログBoxを使用してファイル名を取得
したいのですが、どうも上手く動きません!
取得方法を教えてください・・・
通常だと↓でText形式の保存。ではFile名は?
Dim strPath As String '指定ファイル名格納
'cdg = コモンダイアログ名
Me.cdg.Filter = "text|*.TXT"
Me.cdg.FileName = "C:\*.txt"
'コモンダイアログボックス表示
Me.cdg.ShowOpen
strPath = "" & Me.cdg.FileName
No.3ベストアンサー
- 回答日時:
サンプルです。
エクセル2000にて動作確認しました。
求めているものと違ったらレスをください。
Private Const CSIDL_DESKTOP As Long = &H0 'デスクトップ フォルダ
Private Const CSIDL_PROGRAMS As Long = &H2 'WINDOWS\プログラム フォルダ
Private Const CSIDL_CONTROLS As Long = &H3 'コントロールパネル フォルダ
Private Const CSIDL_PRINTERS As Long = &H4 'プリンタ フォルダ
Private Const CSIDL_PERSONAL As Long = &H5 '共有フォルダ
Private Const CSIDL_FAVORITES As Long = &H6 'お気に入り フォルダ
Private Const CSIDL_STARTUP As Long = &H7 'スタートアップ フォルダ
Private Const CSIDL_RECENT As Long = &H8 '最近使ったファイル フォルダ
Private Const CSIDL_SENDTO As Long = &H9 '送る フォルダ
Private Const CSIDL_BITBUCKET As Long = &HA 'ごみ箱 フォルダ
Private Const CSIDL_STARTMENU As Long = &HB 'スタートメニュ- フォルダ
Private Const CSIDL_DESKTOPDIRECTORY As Long = &H10 'WINDOWS\デスクトップ フォルダ
Private Const CSIDL_DRIVES As Long = &H11 'マイコンピュータ フォルダ
Private Const CSIDL_NETWORK As Long = &H12 'ネットワーク フォルダ
Private Const CSIDL_NETHOOD As Long = &H13 'NETHOOD フォルダ
Private Const CSIDL_FONTS As Long = &H14 'フォント フォルダ
Private Const CSIDL_SHELLNEW As Long = &H15 '新規作成 フォルダ
Private Const BIF_RETURNONLYFSDIRS = &H1
Private 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
Private Declare Function SHBrowseForFolder Lib "SHELL32" (lpbi As BROWSEINFO) As Long
Private Declare Function SHGetPathFromIDList Lib "SHELL32" (ByVal pIDL As Long, ByVal pszPath As String) As Long
Private Sub Main()
Dim strRtnValue As String
strRtnValue = ChoiceFolder("テスト")
If strRtnValue = "" Then
MsgBox "未選択"
Else
MsgBox strRtnValue
End If
End Sub
'フォルダの参照ダイアログ
'【パラメータ】ダイアログ解説文
Public Function ChoiceFolder(Optional inGuide As String = "フォルダを指定して下さい。") As String
Const MAX_PATH = 1000
Dim lngRetValue As Long
Dim strPathBuffer As String * MAX_PATH
Dim udtBrowseInfo As BROWSEINFO
Dim ReturnPath As String
strPathBuffer = String(MAX_PATH, vbNullChar)
With udtBrowseInfo
.pidlRoot = CSIDL_PROGRAMS 'ルート フォルダ(CSIDL_xxx)
.lpszTitle = inGuide & vbNullChar 'ダイアログの解説文
.ulFlags = BIF_RETURNONLYFSDIRS
End With
lngRetValue = SHBrowseForFolder(udtBrowseInfo)
If lngRetValue <> 0& Then
' パス名だけが返る
lngRetValue = SHGetPathFromIDList(lngRetValue, strPathBuffer)
If lngRetValue = 0 Then
' 無効なパス
ReturnPath = ""
Else
ReturnPath = Left(strPathBuffer, InStr(strPathBuffer, vbNullChar) - 1)
If Not (Right(ReturnPath, 1) = "\") Then ReturnPath = ReturnPath & "\"
End If
Else
'キャンセルされた
ReturnPath = ""
End If
ChoiceFolder = ReturnPath
End Function
No.2
- 回答日時:
なるほど、そういうことですか。
現在アクセスにコモンダイアログコントロールを使用してるという状況ですよね?
それではファイルの指定はできても、フォルダを指定させるダイアログを表示させることはできません。
フォルダ参照ダイアログにはAPIが必要です。
現在VB環境が無いのですが、MS-Officeはあるのでなんとかサンプルを載せることができそうです。
今はちと忙しいので、あとでサンプルを載せておきます。
No.1
- 回答日時:
>通常だと↓でText形式の保存
保存は
ShowOpenではなく
ShowSaveですよね?
strPath = "" & Me.cdg.FileName
MsgBox strPath
で確認したところ、strPathにはきちんとパスの文字列が帰ってきましたよ。。。
>どうも上手く動きません
とは、ダイアログが表示されないのですか?
それともパスが取れないのですか?
なにがうまく動かないのか、もう一度説明してください。
この回答への補足
返答が送れてゴメンナサイ!
実はこの質問自体が間違ってます。
>>ダイアログボックスで特定のフォルダPathを取得したい。
と思っておりました。
回答がまったく無かった為、削除・修正も出来なく困っておりました。
そろそろ削除できるかと思い閲覧しました。
回答ありがとうございます。
もしよろしければご教授おねがい致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/21 13:29
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/02/21 11:19
- PowerPoint(パワーポイント) エクセルのマクロについて教えてください。 1 2023/01/20 14:36
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/09 10:33
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- Excel(エクセル) EXCELのグラフを画像(JPG形式)で保存、通常実行がうまく行かない。ステップインはうまく行く 3 2022/08/30 12:06
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Windows10でコマンドプロンプト...
-
windowsでテキストファイルの各...
-
ExcelのVBAでフォルダ指定がで...
-
Excelのハイパーリンクについて...
-
エクセルのマクロについて教え...
-
フォルダ内のPDFファイル名を変...
-
vbsで選択ダイアログを表示した...
-
[VBS] Unicodeの文字化けを防ぎ...
-
ファイル名と同名のフォルダを...
-
excel VBA Dirにて検索したフォ...
-
同一フォルダ内の別ブックから...
-
Excel VBA で フォルダ名の一部...
-
エクセル VBA ファイルをフォ...
-
VBA フォルダの複数選択ができない
-
【マクロ】ファイル名の日付に...
-
VBScriptでのフォルダ指定ダイ...
-
VBS 途中のパスに変数を入れたい
-
VBA フォルダ名に特定の文字を...
-
保存先のフォルダ名を指定した...
-
パス名に2バイト文字(マルチバ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Windows10でコマンドプロンプト...
-
windowsでテキストファイルの各...
-
VBA 最新のフォルダ取得
-
ファイル名と同名のフォルダを...
-
VBA フォルダ名に特定の文字を...
-
デスクトップの画像をhtmlに表...
-
Excelのハイパーリンクについて...
-
フォルダ内のPDFファイル名を変...
-
Excelで指定したフォルダに保存...
-
会社のネットワーク上のファイ...
-
【マクロ】ファイル名の日付に...
-
保存先のフォルダ名を指定した...
-
多量のファイルをフォルダに自...
-
パス名に2バイト文字(マルチバ...
-
ディレクトリ名変更してコピー...
-
Access VBA で フォルダ権限...
-
C ファイル出力で、フォルダが...
-
サーバ内のフォルダ名と各フォ...
-
フォルダにリンクを貼りたい
-
vbsで選択ダイアログを表示した...
おすすめ情報