3

そのため、FileDialog を使用して、PowerPoint プレゼンテーションに入れる画像でいっぱいのフォルダーを選択していますが、正しい初期ビューを表示するのに問題があります。

これが私が持っているものです

strFolder = InitDir
Set fldr = Application.FileDialog(msoFileDialogFolderPicker)

With fldr
    .Title = "Select a Folder"
    .AllowMultiSelect = False
    .ButtonName = "Select"
    .InitialView = msoFileDialogViewList
    .InitialFileName = "C:\Users\Daniel\My Pictures\" 'using to test code

    If Right(strName, 1) <> "\" Then
        strFolder = strFolder & "\"
    End If
    If .Show <> -1 Then
        Exit Sub
    Else
        strFolder = .SelectedItems(1) & "\"
    End If
End With

「マイ ピクチャ」の後に「\」を除外すると、ユーザー フォルダ「ダニエル」内のすべてのフォルダが最初に「マイ ピクチャ」が選択された状態で最初のビューに表示されますが、後に「\」を含めると、 「FileDialogViewList」が表示されるだけです。「マイ ピクチャ」フォルダを最初に表示するにはどうすればよいですか。

4

4 に答える 4

0

プリセットの filePath がどういうわけか選択されていることに気付きました。つまり、テキストが青色でした...私にとっては、これが解決策でした:

' delete the selected text entry! 
SendKeys ("{Delete}") 

完全なコード(私にとってはうまくいきました):

With Application.FileDialog(msoFileDialogFolderPicker)
    .Title = "Select a folder"
    .AllowMultiSelect = False
    .ButtonName = "Select"
    .InitialView = msoFileDialogViewList
    If Not .InitialFileName = sFolder Then
        .InitialFileName = sFolder
    End If

    ' Apperently you need Sendkeys to delete the text entry...
    SendKeys ("{Delete}")

    If .Show = -1 Then ' OK was pressed
        sFolder = .SelectedItems(1) & "\"
    Else
        Exit Sub 'Cancel presssed, user wants to Quit.
    End If
End With
于 2022-02-26T02:12:59.060 に答える
0

sFolder に保存されているプリセットパスが「\」で終わっているかどうかを確認するのを忘れていたことがわかりました。私はこれを完全に見落としていたため、「奇妙な」動作が説明されました。

この行を FileDialog の上に配置すると、すべてが正常に機能し、醜い sendkeys "Solution" は必要なくなります... :-)

If Right(sFolder, 1) <> Application.PathSeparator Then sFolder = sFolder & Application.PathSeparators

完全なコード(私にとってはうまくいきました):

If Right(sFolder, 1) <> Application.PathSeparator Then sFolder = sFolder & Application.PathSeparators

With Application.FileDialog(msoFileDialogFolderPicker)
    .Title = "Select a folder"
    .AllowMultiSelect = False
    .ButtonName = "Select"
    .InitialView = msoFileDialogViewList
    If Not .InitialFileName = sFolder Then
        .InitialFileName = sFolder
    End If
    If .Show = -1 Then ' OK was pressed
        sFolder = .SelectedItems(1) & "\"
    Else
        Exit Sub 'Cancel presssed, user wants to Quit.
    End If
End With
于 2022-02-26T02:24:30.157 に答える