エクセル VBA の質問です。パスから、できるだけ簡単にファイル名を取得したいのですが、どうするのがいいのでしょうか?

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2009/08/25 00:31:24
  • 終了:2009/08/25 23:24:20

ベストアンサー

id:SALINGER No.1

SALINGER回答回数3454ベストアンサー獲得回数9692009/08/25 00:43:24

ポイント100pt

2通り考えてみました。myPathはフルパスです。

Dir(myPath)

これでファイル名が取得できます。ただし、そのファイルが存在しないと空白となります。


存在しないかもしれない場合は、これでいいです。

Mid(myPath, InStrRev(myPath, "\") + 1)

http://q.hatena.ne.jp/

id:kaiketsu

簡単という意味では圧倒的に、ピンポンですね。

2009/08/25 23:23:20

その他の回答(4件)

id:SALINGER No.1

SALINGER回答回数3454ベストアンサー獲得回数9692009/08/25 00:43:24ここでベストアンサー

ポイント100pt

2通り考えてみました。myPathはフルパスです。

Dir(myPath)

これでファイル名が取得できます。ただし、そのファイルが存在しないと空白となります。


存在しないかもしれない場合は、これでいいです。

Mid(myPath, InStrRev(myPath, "\") + 1)

http://q.hatena.ne.jp/

id:kaiketsu

簡単という意味では圧倒的に、ピンポンですね。

2009/08/25 23:23:20
id:HALSPECIAL No.2

HALSPECIAL回答回数407ベストアンサー獲得回数862009/08/25 00:45:17

ポイント5pt

FileSystemObjectGetFileName メソッドはいかがですか?


Dim objFS

Dim strFName

Set objFS = CreateObject("Scripting.FileSystemObject")

strFName = objFS.GetFileName("c:\hoge\readme.txt")


http://homepage2.nifty.com/pasocon/template/fsobject.html

id:van-dine No.3

van-dine回答回数108ベストアンサー獲得回数112009/08/25 01:14:42

ポイント5pt
Dim FSO As Object
Set FSO = CreateObject("Scripting.FileSystemObject")
MsgBox FSO.GetFileName("c:\hoge\fuga.txt")"fuga.txt"が表示される

とか、

Dim Path As String
Dim PArr As Variant
Path = "c:\hoge\fuga.txt"
PArr = Split(Path, "\")
MsgBox PArr(UBound(PArr))

とか、どうでしょう?

http://q.hatena.ne.jp/

id:escape1mgjp No.4

escape1mgjp回答回数29ベストアンサー獲得回数02009/08/25 02:12:11

ポイント5pt

こんな関数はいかがでしょうか。

Public Function MakeFileName(fileName As String) As String

  Dim z0 As Long

  z0 = InStrRev(fileName, "\")

  If z0 <> 0 Then

    MakeFileName = Mid(fileName, z0 + 1)

  Else

    MakeFileName = fileName

  End If

End Function

InStrRev関数

http://clip.nifty.com/entry/163bf5b9636c9dbb3b45fd8887904dd15a96...

id:jccrh1 No.5

jccrh1回答回数111ベストアンサー獲得回数192009/08/25 05:44:18

ポイント5pt

FileSystemObjectを使用すれば簡単にファイル名を取得できます。

例)

 Set FSO = CreateObject("Scripting.FileSystemObject")
 フルパス = "C:\xxx\yyy\TEST.xls"
 ファイル名 = FSO.GetFileName(フルパス)

ダミーURL http://q.hatena.ne.jp/1251127881

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

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

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

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません