0

まず、参照がほとんどインストールされておらず、Office がまったくインストールされていないマシンでコードを実行していると言わなければなりません。

コマンドで「explorer.exe」インスタンスを開き、Shellフォルダーを参照し、選択した(または新しく作成した)フォルダーを入力し、最後にMsgBox(同時にポップアップする)「OK」をクリックして閉じてShell、変数への選択されたフォルダー パス。

それを達成する方法がわかりません。を使用するCurDirと、選択したフォルダーではないフォルダーを取得してしまいます。

使用されたコード(機能しませんでした):

Sub BrowseForFolder()

ActualDir = "D:\"
Call Shell("C:\Windows\explorer", ActualDir, 1)

If Msgbox("Browse into folder or create a new one and then browse into it, then click ok", vbOkOnly, "Browse") = vbOk Then
    ' here should be the command to return the path. The following doesn't work since it returns always "D:\"
    ActualDir = CurDir
End If

' Here I have to close the Shell - I have no idea what to write to do it

End Sub
4

1 に答える 1

0

完全に機能する LS_dev によって提案されたコードの下:

Private Sub SelectFolder_Click()

Dim objShell As Shell       

シェル参照を追加する必要がありました

Dim ssfWINDOWS As Long
Dim objFolder As Folder2    

なぜか「フォルダ」が動かない

ssfWINDOWS = 36
Set objShell = New Shell
Set objFolder = objShell.BrowseForFolder(0, "Select Folder", 0, "D:\")

If (Not objFolder Is Nothing) Then
    FolderName = objFolder.Self.path
End If

Set objShell = Nothing

End Sub
于 2013-10-10T09:12:24.820 に答える