0

参照ファイル名をテキスト ボックスに取得する方法は? ファイルパスを取得する場合、ファイル名を分割する方法は?

私は試したapplication.GetOpenFilename("Text Files(*.txt),*.txt")

テキスト ボックスに表示する方法と、テキスト ファイルを読み取るためだけに正確なファイル名を分割する方法を教えてください。

4

5 に答える 5

3

Dir 関数は、存在するファイルである限り、ファイル名を提供します。GetOpenFilename を使用すると、あなたのファイル名になります。

Sub GetFileName()

    Dim sFullName As String
    Dim sFileName As String

    sFullName = Application.GetOpenFilename("*.txt,*.txt")
    sFileName = Dir(sFullName)

    Debug.Print sFullName, sFileName

End Sub
于 2012-10-26T16:33:45.227 に答える
3

車輪の再発明に時間を無駄にしないでください。FileSystemObjectがこれを行います。

Dim FSO As Object: Set FSO = CreateObject("Scripting.FileSystemObject")
Sheet1.TextBox1.Text = FSO.GetFilename("C:\mydir\myfile.dat")

テキストボックスにテキストが含まれるようになりましたmyfile.dat

于 2012-10-26T06:54:55.020 に答える
1

パスを取り除いたファイル名を返すVBAルーチンを次に示します。代わりにパスを返すように、またはその両方に簡単に変更できます。

'====================================================================================
'     Returns the file name without a path via file open dialog box
'====================================================================================
' Prompts user to select a file.  Which ever file is selected, the function returns
' the filename stripped of the path.

Function GetAFileName() As String

Dim someFileName As Variant
Dim folderName As String
Dim i As Integer
Const STRING_NOT_FOUND As Integer = 0

'select a file using a dialog and get the full name with path included
someFileName = Application.GetOpenFilename("Text Files (*.txt), *.txt")

If someFileName <> False Then

    'strip off the folder path
    folderName = vbNullString
    i = 1

    While STRING_NOT_FOUND < i
        i = InStr(1, someFileName, "\", vbTextCompare)  'returns position of the first backslash "\"
        If i <> STRING_NOT_FOUND Then
            folderName = folderName & Left(someFileName, i)
            someFileName = Right(someFileName, Len(someFileName) - i)
        Else 'no backslash was found... we are done
            GetAFileName = someFileName

        End If
    Wend

Else
    GetAFileName = vbNullString
End If

End Function
于 2012-10-26T04:30:48.740 に答える
0

最も簡単な方法は、単純に final から読み取ること"\"です。

tbx.text = mid$(someFileName, 1 + InStrRev(someFileName, "\"), Len(someFileName))
于 2012-10-26T09:53:57.240 に答える
0

ボタン1クリック

    OpenFileDialog1.ShowDialog()
    Me.TextBox1.Text = OpenFileDialog1.FileName
End Sub

Textbox1 の変更

    Dim File As System.IO.FileInfo
    File = My.Computer.FileSystem.GetFileInfo(TextBox1.Text)
    Dim Path As String = File.DirectoryName
    TextBox2.Text = Path
    Dim fileName As String = File.Name
    TextBox3.Text = fileName
End Sub
于 2013-01-15T03:49:16.423 に答える