Demonstration of my problem
- Open a new Excel workbook and save these symbols 設計師協會 to cell [A1]
- insert the following VBA code somewhere in the editor (Alt+F11)
- execute it line per line (F8)
Sub test() strCRLF = StrConv(vbCrLf, vbUnicode) strSpecialchars = StrConv(Cells(1, 1), vbUnicode) strFilename = "c:\test.txt" Open strFilename For Output As #1 Print #1, strSpecialchars & strCRLF; Close #1 End Sub
You will get a textfile which contains the chinese characters from [A1]. This proofs that VBA is able to handle unicode characters if you know the trick with adding StrConv(vbCrLf, vbUnicode)
Now try the same for strFilename = "C:\" & strSpecialchars & ".txt"
. You will get an error that you can't create a file with this filename. Of course you can't use the same trick adding a new line since its a filename.
How can I create text files with special characters in their filenames using VBA?
Is there a work-around or am I doing something wrong?
Note
- I'm using Windows 7 x64. I'm able to create text files with special characters manually
- I found a second method using FileSystemObject. But I hope I could avoid setting a reference to the VB script run-time library