web-dev-qa-db-ja.com

VBAのFileDialogのフォルダーのデフォルト設定

Private Sub Command93_Click()

    Dim f As Object
    Dim strFile As String
    Dim strFolder As String
    Dim varItem As Variant
    Dim P As String
    Dim DeleteEverything As String

        DoCmd.SetWarnings False
        DeleteEverything = "DELETE * FROM [TABLE]"
        DoCmd.RunSQL DeleteEverything

    Set f = Application.FileDialog(3)
    f.AllowMultiSelect = False
    If f.Show Then
        For Each varItem In f.SelectedItems
            strFile = Dir(varItem)
            strFolder = Left(varItem, Len(varItem) - Len(strFile))
            P = strFolder & strFile
        Next
    End If
    Set f = Nothing

        DoCmd.TransferText acImportFixed, "[IMPORT SPECIFICATION]", "[TABLE]", P, False

End Sub

FileDialogを最初に開いたときに特定のフォルダーをデフォルトにする方法は?

17
Chuck

フォルダーパス(末尾の\を含む)をInitialFileNameに追加します。たとえば、ユーザーのホームディレクトリでダイアログを開くには、次のようにします。

f.InitialFileName = Environ("USERPROFILE") & "\"

末尾の\を忘れると、ダイアログボックスは正しいフォルダーで開きますが、フォルダー名はデフォルトで選択されたファイル名として表示されます。次に、ダイアログは同じ名前のサブフォルダーを探しますが、これは通常は存在しません。

45
Chuck