Dirを使用して条件に基づいてファイルのリストを選択しています。 これらを文字列の配列に格納します。 次に、配列を反復処理してファイルを処理します。Dirを使用してVBAでユニコード文字でファイル名を処理する方法は?
ユニコード文字でファイル名を処理するにはどうすればよいですか? 私はstrconv()を実行しようとしましたが、助けませんでした。私は、ファイルが見つからないエラーを取得し、最後の行で
vfilename = vCurrDir & "\" & vfile
Set objFSO = CreateObject("Scripting.FileSystemObject")
vDateMod = objFSO.GetFile(vfilename).datelastmodified
:
vfile = Dir(vCurrDir & vCrit, vbNormal) 'vCrit is something like *test*
はその後I`llは、このようなファイルのプロパティにアクセスしてみてください。ユニコード文字を持つファイル名に対してのみこれが行われます。 これに関する別の記事がここにあります:Working with Unicode file names in VBA (using Dir, FileSystemObject, etc.)しかし、それはDirの問題を解決しませんでした。
私の例: VBA(腕時計)C:C:私のテスト-file.pdfのユニコード\ \私のテスト-file.pdf
(あなたがここでの違いを見ることはできませんが、あなたはペーストをコピーする場合それらをNotepad ++に変換すると、ダッシュが2つのファイルの異なる文字であることがわかります.VBAはUnicodeダッシュ文字をWindowsのロケールに変換しています)
またはリンクされた質問の例: 3_Połish.txt )vs 3_Polish.txt(VBA)
あなたの 'vfilename'に時計を追加しようとしましたか?何が表示されますか? – ZwoRmi
もちろん、VBAはファイル名をWindowsに変換しています。ロケール:(ここでは表示されませんが、メモ帳に貼り付けた場合は2つのファイル名が異なります。 c:\ my-test-file.pdf Unicode: c:\ my-test-file.pdf – Atti
'fso.GetFolder(path)'を使ってみましたか? – ZwoRmi