Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


43109 / 76732 ←次へ | 前へ→

【38680】Re:フォルダ選択ダイアログの表示
発言  ハト  - 06/6/8(木) 14:19 -

引用なし
パスワード
   おはようございます

>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

1 hits

【38642】フォルダ選択ダイアログの表示 aaa 06/6/7(水) 17:28 質問
【38644】Re:フォルダ選択ダイアログの表示 ichinose 06/6/7(水) 17:52 発言
【38664】Re:フォルダ選択ダイアログの表示 aaa 06/6/8(木) 10:06 質問
【38680】Re:フォルダ選択ダイアログの表示 ハト 06/6/8(木) 14:19 発言
【38691】Re:フォルダ選択ダイアログの表示 aaa 06/6/8(木) 16:23 お礼
【38705】参考までに ハト 06/6/8(木) 18:25 発言
【38649】Re:フォルダ選択ダイアログの表示 inoue 06/6/7(水) 18:54 発言

43109 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free