[[20220202195906]] 『FileDialogオブジェクトのフォルダ選択欄を空白に』(遠藤) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『FileDialogオブジェクトのフォルダ選択欄を空白にしたい』(遠藤)

お世話になります。
A列にファイルのハイパーリンクを設定しています。(セルにはファイル名と拡張子を表示)
B列をダブルクリックすると、左隣のセルのファイルを任意の場所にコピーして保存するマクロを組みました。

ネットで調べて、直前のフォルダを保持できるようにコードを作成したんですが、1点だけ困っています。

例えば直前に開いたフォルダがドキュメントの場合、

フォルダー名(N):Documents

とフォルダ選択欄(正式な名前がわかりません)の表示が英語になります。(手動で選択した場合、カタカナで「ドキュメント」になる)
このままOKすると、パスが存在しないとエラーになります。

「Documents」の部分を消しても正常に動くので、マクロで選択する際フォルダ選択欄は空白にしたいのですが、可能なのでしょうか。
エクセルの仕様だと思いますが、もし方法があるならご教授お願いします。

Option Explicit
Dim bpath As String
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

    Dim oPath As String
    Dim cPath As String
    cPath = OpenFld(bpath)
    If cPath <> "" Then
        With Target
            If .Column <> 2 Then Exit Sub
            bpath = cPath
            oPath = .Offset(0, -1).Hyperlinks.Item(1).Address
            FileCopy oPath, cPath & "\" & .Offset(0, -1)
        End With
    End If
    Cancel = True
End Sub

Function OpenFld(Optional ByVal bpath As String) As String

    With Application.FileDialog(msoFileDialogFolderPicker)
        If Trim(bpath) = "" Then
            .InitialFileName = ThisWorkbook.path
        Else
            .InitialFileName = bpath
        End If

        If .Show = -1 Then
            OpenFld = .SelectedItems(1)
        Else
            OpenFld = vbNullString
        End If
    End With
End Function

< 使用 Excel:Excel2016、使用 OS:Windows10 >


>英語になります。

そのまま進めて見ては。
(水曜日) 2022/02/02(水) 21:50


 小手先の姑息的手段ですが

 Function OpenFld(Optional ByVal bpath As String) As String
    With Application.FileDialog(msoFileDialogFolderPicker)
        If Trim(bpath) = "" Then
            .InitialFileName = ThisWorkbook.Path
        Else
            .InitialFileName = bpath
        End If
        SendKeys "{BS}"                ' これ追加
        If .Show = -1 Then
            OpenFld = .SelectedItems(1)
        Else
            OpenFld = vbNullString
        End If
    End With
 End Function
(´・ω・`) 2022/02/02(水) 22:05

なるほど、バックスペースを入れれば消せますね!
ありがとうございます。
(遠藤) 2022/02/02(水) 22:25

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.