Excel VBA質問箱 IV

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

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


13080 / 13644 ツリー ←次へ | 前へ→

【7080】フォルダ名取得について 七瀬 03/8/22(金) 1:50 質問
【7082】Re:フォルダ名取得について INA 03/8/22(金) 8:52 回答
【7111】Re:フォルダ名取得について ichinose 03/8/22(金) 21:11 発言
【7144】Re:フォルダ名取得について 七瀬 03/8/24(日) 0:41 お礼

【7080】フォルダ名取得について
質問  七瀬  - 03/8/22(金) 1:50 -

引用なし
パスワード
   いつもお世話になります。

題名にあるようにマイドキュメント、デスクトップにあるフォルダ名を
すべて取得したいのですが...

よろしくお願いします。

【7082】Re:フォルダ名取得について
回答  INA  - 03/8/22(金) 8:52 -

引用なし
パスワード
   OSによりフォルダの位置が異なるので、適当に変更して下さい。
A列のセルにフォルダ名が抽出されます。

Private Sub CommandButton1_Click()
Dim myPath As String
Dim myFolder As String
Dim C As Long '行カウンタ

myPath = "C:\" '検索フォルダを指定

Range("A1").Value = "「" & myPath & "」のフォルダ名"

C = 2

myFolder = Dir(myPath, vbDirectory)

Do While myFolder <> ""  '取得した名前が空欄でない間繰り返し

  '現在のフォルダと親フォルダでなければ
  If myFolder <> "." And myFolder <> ".." Then
   
     '取得した名前がフォルダなら
    If (GetAttr(myPath & myFolder) And vbDirectory) = vbDirectory Then
      Cells(C, 1).Value = myFolder  '取得したフォルダ名をセルに代入
      C = C + 1
    End If
  End If
  'フォルダ名を取得する
  myFolder = Dir
Loop
  
End Sub

【7111】Re:フォルダ名取得について
発言  ichinose  - 03/8/22(金) 21:11 -

引用なし
パスワード
   七瀬さん、INA さん、こんばんは。

>OSによりフォルダの位置が異なるので、適当に変更して下さい。
これ、以下のようにすると、その異なる位置がみつかりますよ。
'============================================
Sub test()
  MsgBox get_sp_fullpath("Desktop")
  MsgBox get_sp_fullpath("MyDocuments")
End Sub
'================================================
Function get_sp_fullpath(keyword) As String
  Set WsShell = CreateObject("WScript.Shell")
  get_sp_fullpath = WsShell.SpecialFolders(keyword)
  '                     変数指定はVariantでね
  '                    そうしないと正しい解答を得られません
  Set WsShell = Nothing
End Function

たぶん、Scriptを対象に作られてるからだと思います。
後は、INAさんのコードで・・・・。


>Private Sub CommandButton1_Click()
>Dim myPath As String
>Dim myFolder As String
>Dim C As Long '行カウンタ
>
>myPath = "C:\" '検索フォルダを指定
>
>Range("A1").Value = "「" & myPath & "」のフォルダ名"
>
>C = 2
>
>myFolder = Dir(myPath, vbDirectory)
>
>Do While myFolder <> ""  '取得した名前が空欄でない間繰り返し
>
>  '現在のフォルダと親フォルダでなければ
>  If myFolder <> "." And myFolder <> ".." Then
>   
>     '取得した名前がフォルダなら
>    If (GetAttr(myPath & myFolder) And vbDirectory) = vbDirectory Then
>      Cells(C, 1).Value = myFolder  '取得したフォルダ名をセルに代入
>      C = C + 1
>    End If
>  End If
>  'フォルダ名を取得する
>  myFolder = Dir
>Loop
>  
>End Sub

【7144】Re:フォルダ名取得について
お礼  七瀬  - 03/8/24(日) 0:41 -

引用なし
パスワード
   ▼INA さん遅くなりました。

出来ました。ありがとうございました。

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