次のフルパスから「MyFileName」のような
ファイル名(パスと拡張子なし)だけを取得するにはどうすればよい 
ですか?
C:\ A_B \ CD \ E_ \ F0123456789 \ G \ MyFileName.txt
			
			9104 次
		
5 に答える
            2        
        
		
InStrRev文字列内で最後に出現する文字を見つけます。検索し\てそこで分割する
FullFileName="C:\A_B\C.D\E_\F0123456789\G\MyFileName.txt"
FileName=mid(FullFileName,instrrev(FullFileName,"\")+1)
今すぐエクステンションを外す
FileNameWithoutExt=left(FileName,instrrev(FileName,".")-1)
    于 2012-09-10T15:29:23.053   に答える
    
    
            2        
        
		
Public Function GetFileNameWithoutExt(ByVal fullPath As String) As String
Dim fileName As String
Dim fileNameWithoutExt As String
Dim lastSlash As Integer
Dim positionOfDot As Integer
lastSlash = InStrRev(fullPath, "\")
fileName = Mid(fullPath, lastSlash + 1)
positionOfDot = InStr(1, fileName, ".")
fileNameWithoutExt = Mid(fileName, 1, positionOfDot - 1)
GetFileNameWithoutExt = fileNameWithoutExt
End Function
イミディエイト ウィンドウの使用
?GetFileNameWithoutExt("C:\A_B\C.D\E_\F0123456789\G\MyFileName.txt")
編集:別の方法
Public Function GetFileNameWithoutExt2(ByVal fullPath As String) As String
Dim fileName As String
Dim splittedData
Dim fileNameWithoutExt As String
splittedData = Split(fullPath, "\")
fileName = splittedData(UBound(splittedData))
fileNameWithoutExt = Split(fileName, ".")(0)
GetFileNameWithoutExt2 = fileNameWithoutExt
End Function
    于 2012-09-10T15:30:52.517   に答える
    
    
            1        
        
		
アクセスできる実際のファイルの場合は、 Dir を使用できます
sFileOnly = Dir(sPathAndFile)
それが実際のファイルでない場合、またはアクセスできない場合、これは空の文字列を返します。
于 2012-09-10T18:30:23.700   に答える
    
    
            0        
        
		
    Sub Test()
        Dim fileNameOnly As String
        fileNameOnly = Left$(Split("C:\A_B\C.D\E_\F0123456789\G\MyFileName.txt", "\")(UBound(Split("C:\A_B\C.D\E_\F0123456789\G\MyFileName.txt", "\"))), InStrRev(Split("C:\A_B\C.D\E_\F0123456789\G\MyFileName.txt", "\")(UBound(Split("C:\A_B\C.D\E_\F0123456789\G\MyFileName.txt", "\"))), ".") - 1)
        Debug.Print Strtf    
    End Sub
    于 2012-09-10T15:39:37.840   に答える
    
    
            0        
        
		
Set regEx = New RegExp
regEx.Pattern = ".*\\"
regEx.IgnoreCase = True
filename = regEx.Replace(fullpath, "")
    于 2012-09-10T15:22:09.777   に答える