ACCESS VBAの質問です。バージョンは2003です。

下記コードで、ファイルパスが取得出来るのですが、これを
「ファイル名」と 「ファイルが入っているフォルダのパス」に分けたいです。

例)
C:\Documents and Settings\hoge\デスクトップ\sample.csv

path = "C:\Documents and Settings\hoge\デスクトップ"
filename = "sample.csv"
のような結果になるようにしたいです。
コードを教えてください。

-------------------------------------------------
Public Function GetFileName() As String
Dim intRet As Integer
With Application.FileDialog(msoFileDialogOpen)
.Title = "ファイルを開くダイアログの例"
.Filters.Clear
.Filters.Add "CSV ファイル", "*.csv"
.Filters.Add "Microsoft Access データベース", "*.mdb"
.Filters.Add "Microsoft Access プロジェクト", "*.adp"
.Filters.Add "MDE ファイル", "*.mde"
.Filters.Add "すべてのファイル", "*.*"
.FilterIndex = 1
.AllowMultiSelect = False
.InitialFileName = CurrentProject.Path
intRet = .Show
If intRet <> 0 Then
GetFileName = Trim(.SelectedItems.Item(1))
Else
GetFileName = ""
End If
End With
End Function

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2009/11/03 19:45:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:kn1967 No.1

回答回数2915ベストアンサー獲得回数301

ポイント27pt
GetFileName = Trim(.SelectedItems.Item(1))
p = InStrRev(GetFileName, "\")
path = Left(GetFileName, p)
filename = Mid( GetFileName, p + 1)
id:rupopon

ありがとうございました。参考にさせていただきます。

2009/10/28 10:25:49
id:HALSPECIAL No.2

回答回数407ベストアンサー獲得回数86

ポイント27pt

FileSystemObjectオブジェクトを使います。


Option Explicit

Dim objFS
Dim filePathName As String
Dim filename As String
Dim path As String

filePathName = GetFileName()

Set objFS = CreateObject("Scripting.FileSystemObject")
filename  = objFS.GetFileName(filePathName)
path = objFS.GetParentFolderName(filePathName)
Set objFS = Nothing

id:rupopon

ありがとうございました。参考にさせていただきます。

2009/10/28 10:25:52
id:hakkyoku No.3

回答回数32ベストアンサー獲得回数2

ポイント26pt

ファイル名取得

filename =Dir(フルパス)


フォルダ名取得

path = Left(フルパス, Len(フルパス) - Len(Dir(フルパス)))


これでどうでしょうか?

id:rupopon

ありがとうございました。参考にさせていただきます。

2009/10/28 10:25:57
  • id:ken3memo
    エクセル VBA の質問です。パスから、できるだけ簡単にファイル名を取得したいのですが、どうするのがいいのでしょうか?
    http://q.hatena.ne.jp/1251127881#a943684
    を参考に
    myPath = "C:\Documents and Settings\hoge\デスクトップ\sample.csv"
    なら
    filename = Dir(myPath)
    で、あとは、ファイル名を消したのが残りの部分なので
    Path = Replace(myPath, Filename, "")
    とか?

  • id:rupopon
    ありがとうございました。参考にさせていただきます。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません