[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『機種依存文字があるとChDirできない』(あん)
やりたいことは、機種依存文字を含むパスでダイアログボックスを開くことです。
ChDir Cells(1, 1).Value
Target = Application.GetOpenFilename("Excel ブック,*.xls?")
※cells(1 ,1)には、
「C:\Users\%username%\--\--\--\--\?@報告書\2021年\8月」が入っています。
(--は実際には別のフォルダ名です)
このマクロを実行すると、「パスが見つかりません」のエラーになってしまいます。
どうやら「?@」が機種依存文字で「?」になって認識されないようです。
同じ機種依存文字でも丸17だとなぜか普通にカレントフォルダに指定できます。
どうやったら、ダイアログボックスが開けるでしょうか?
< 使用 Excel:Excel2019、使用 OS:Windows10 >
(γ) 2021/08/21(土) 23:23
(γ) 2021/08/21(土) 23:53
問題のパスの下にブック名をつけても開きませんでした。
ちなみに、開きたいフォルダはドロップボックス内にあるのですが、この挙動に関係あるでしょうか?
(あん) 2021/08/22(日) 00:04
(γ) 2021/08/22(日) 00:16
パス(256文字)制限かなと思いましたが?
(あい) 2021/08/22(日) 16:32
丸数字は複数種あるので、どの丸数字使ってるのかによって変わってきますが、 とりあえずChDirではunicode文字を含んだパスはダメっぽいですよ。
CreateObject("WScript.Shell").CurrentDirectory = Cells(1, 1).Value
とかならイケるかも知れません。(実証はしてませんけど)
(白茶) 2021/08/23(月) 19:55
一応動作確認してみました。
仮に [A1]が C:\xxx\①\ (C:\xxx\①\) [A2]が C:\xxx\➀\ (C:\xxx\➀\)
として、実際↑のフォルダを2つ作った状態だとしたら、
?Dir([A1]) ←エラーなし ?Dir([A2]) ←実行時エラー'52': ファイル名または番号が不正です。
ChDir([A1]) ←エラーなし ChDir([A2]) ←実行時エラー'76': パスが見つかりません。
CreateObject("WScript.Shell").CurrentDirectory = [A2] '←エラーなし ?CreateObject("WScript.Shell").CurrentDirectory '←正常(但しイミディエイト上の表記は[C:\xxx\?])
という結果でした。
(白茶) 2021/08/24(火) 09:58
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.