[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『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
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.