|
おはようございます
>Dim pas1 As String
>Dim pas2 as integer
>Dim i As Integer
> pas = get_folder_path("SelectFolder", ThisWorkbook.Path & "\")
> i = InStr(pas, "自分のフォルダ")
> j = Mid(pas, i + 8, 10)
> Range("A1).Value = pas2
>
>なんて風に変えれば「自分のフォルダ」というフォルダ配下のフォルダ名だけは出ますが、その配下のフォルダ名の文字数は一定ではありませんし、最大何文字なのかは今後わかりません。ですからMID関数で値をとるとちょっと複雑になりそうなので、いい方法はありませんか?
>それプラスもう一階層下のフォルダ名を別のセルに表示させたいと思っています。フォルダの階層はこのようになっています。
>「\自分のフォルダ\01ABC\ABCDEFG」
>例 セルA1に「01ABC」、セルA2に「ABCDEFG」と表示
>
>よろしくお願いします。
InStr関数を使って"\"の位置を求めて、MID関数を使う
そんなに複雑じゃないですよ
↓のような感じになります
Sub Test()
Dim pas1 As String
Dim pas2 As String
Dim i As Integer
Dim j As Integer
Range("A1:B1").Clear
pas = get_folder_path("SelectFolder", ThisWorkbook.Path & "\")
i = InStr(pas, "自分のフォルダ")
If i = 0 Then Exit Sub
pas = pas & "\"
i = InStr(i + 1, pas, "\")
j = InStr(i + 1, pas, "\")
If j = 0 Then Exit Sub
pas2 = Mid(pas, i + 1, j - i - 1)
Range("A1").Value = pas2
i = j
j = InStr(i + 1, pas, "\")
If j = 0 Then Exit Sub
pas2 = Mid(pas, i + 1, j - i - 1)
Range("B1").Value = pas2
End Sub
|
|