Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 7 Home Premium : Excel 2010)
特殊文字をListBoxにそのまま表示 (2)
投稿日時: 20/03/14 19:06:01
投稿者: shimoichimabu

下記コードにてUserFormのListBoxにファイル名(特殊文字含む)を取り込み、文字化けすることなく、うまく表示できました。
 
 Dim FSO As Object
 Dim f As Object
 Set FSO = CreateObject("Scripting.FileSystemObject")
     
For Each f In FSO.GetFolder("D:\音楽ファイル").Files
        Me.ListBox A.AddItem f.Name
    Next
    Set FSO = Nothing
End Sub
 
しかし、下記コードにて、このファイル名修正しようとすると、下記エラーが出ます。
実行時エラー;53  ファイルが見つかりません。
        
Name "\音楽ファイル\" & ListBox A.Column(0, N) As "\音楽ファイル\" & .ListBox B.Column(0, N)
 
ListBoxに特殊文字(フランス語)も表示されていても、いざ、ファイル名変更コマンドを実行すると、エラーが出るのは実行時に特殊文字がVBA内部で英語に変換されているからでしようか?

回答
投稿日時: 20/03/14 20:51:07
投稿者: WinArrow
投稿者のウェブサイトに移動

未確認ですが、
FSOで取得できたのだら
ファイルコピーできませんかね?
 
ファイルコピー後、元ファイルを削除すれば?

回答
投稿日時: 20/03/14 21:07:59
投稿者: WinArrow
投稿者のウェブサイトに移動

UNICODEを含むファイル名のファイルを作成して、
CopyFileのテストしました。
 
大丈夫そうです。

投稿日時: 20/03/14 22:51:00
投稿者: shimoichimabu

WinArrowさん、回答ありがとうございます。
 
>FSOで取得できたのだら
>ファイルコピーできませんかね?
>ファイルコピー後、元ファイルを削除すれば?
 
確かに! おっしゃる通りです。
早速、下記コードで試行してみましたら、エラーも無くうまくいきました。
色々、勉強になりました。
 
FSO.CopyFile Range("C1").Value & "\" & .Column(0, N), Range("C1").Value & "\★ " & msg
 
FSO.DeleteFile (Range("C1").Value & "\" & .Column(0, N))