|
こんにちは。かみちゃん です。
>'フルパスの前から\マークの位置を検索
> Pos = InStr(FName, "\")
> Pos2 =InStr(PNum, "\")
>
>
>Workbooks("書き込みデータ.xls").Sheets(1).Cells(1, 1).Value = Pos
>Workbooks("書き込みデータ.xls").Sheets(1).Cells(1, 2).Value = Pos2
>
>End Sub
>
>
>なぜか数字になってしまうのですが・・・
変数 Pos と Pos2 は、検索文字列の見つかった位置ですから、文字列そのものではありません。
詳しくは、InStr関数をヘルプで調べてみてください。
ちなみに、僭越ながら、添削させていただくと以下のような感じになります。
Sub フォルダ名の取得2()
Dim OpenFileName As String, OpFNam As String
Dim tmp As Variant
Dim PNum As String
' Dim Pos, Pos2 As String
Dim Pos As Long
Dim Pos2 As Long
'開くファイル名を指定する。
OpenFileName = Application.GetOpenFilename("Microsoft Excelブック,*.xls")
If OpenFileName = "False" Then
Exit Sub
End If
'ファイルを開く
Workbooks.Open OpenFileName
'開いたファイルを『OpFNam』という名前とする。
OpFNam = ActiveWorkbook.Name
'フルパスの取得
PNum = Workbooks(OpFNam).Path
'フルパスの前から\マークの位置を検索
' Pos = InStr(FName, "\")
' Pos2 = InStr(PNum, "\")
' Workbooks("書き込みデータ.xls").Sheets(1).Cells(1, 1).Value = Pos
' Workbooks("書き込みデータ.xls").Sheets(1).Cells(1, 2).Value = Pos2
Workbooks("書き込みデータ.xls").Sheets(1).Cells(1, 1).Value = Mid(OpenFileName, 1, InStrRev(OpenFileName, "\"))
Workbooks("書き込みデータ.xls").Sheets(1).Cells(1, 2).Value = Mid(OpenFileName, InStrRev(OpenFileName, "\") + 1)
End Sub
|
|