0

プロシージャに変数を渡し、その変数に基づいてファイルを開き、呼び出し元のプロシージャにファイルパスを返す機能を作成したいと考えています。私はファイルなどを開くためのコードを持っていますが、プロシージャにはそれを呼び出すことができる場所が複数あるため、そこに配置したくはありませんが、ファイルパスを変数に返すだけです(後で使用できます)開いているファイルからフィールドをロードします)。

私が使用しているファイルをロードするコードは以下のとおりです。これを必要な処理を行うプロシージャに変換するにはどうすればよいですか?

        'Open the file
        NameOfFile = ActiveWorkbook.Worksheets("Parameters").Cells(8, 2).Value
        PathToFile = Left$(NameOfFile, InStrRev(NameOfFile, "\") - 1)
        FileNameNoPath = Mid$(NameOfFile, InStrRev(NameOfFile, "\") + 1)
        NameOfFile = FileNameNoPath
        CompleteFilePath = PathToFile & "\" & NameOfFile

        On Error Resume Next
        Set File1 = Workbooks(NameOfFile)

        If Err.Number <> 0 Then
        'Open the workbook
          Err.Clear
          Set File1 = Workbooks.Open(CompleteFilePath, UpdateLinks:=False)
          CloseIt = True
        End If

        'Check and make sure workbook was opened
        If Err.Number = 1004 Then
            MsgBox "File is missing, please check your path!" _
            & vbNewLine & NameOfFile
            Exit Sub
        End If
        On Error GoTo 0
4

1 に答える 1

2

こんな感じですか?

Option Explicit

Dim FilePath As String

Sub Sample()
    Dim FileToOpen As String

    FileToOpen = "C:\Temp\Sample.xlsx"

    OpenFile FileToOpen

    Debug.Print FilePath
End Sub

Sub OpenFile(strFile As String)
    FilePath = Left$(strFile, InStrRev(strFile, "\") - 1)

    '
    '~~> Rest of the code
    '
End Sub
于 2013-02-01T09:04:45.593 に答える