人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

●質問者: kaiketsu
●カテゴリ:コンピュータ 科学・統計資料
✍キーワード:VBA エクセル パス ファイル
○ 状態 :終了
└ 回答数 : 5/5件

▽最新の回答へ

1 ● SALINGER
●100ポイント ベストアンサー

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

Dir(myPath)

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


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

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

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

◎質問者からの返答

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


2 ● HALSPECIAL
●5ポイント

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


3 ● van-dine
●5ポイント
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/


4 ● escape1mgjp
●5ポイント

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

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...


5 ● jccrh1
●5ポイント

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

例)

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

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ