|
七瀬さん、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
|
|