次の関数があり、 Macでのみランタイムエラー52(ファイル名または番号が正しくない)が発生します。Open filePath & filename For Output As #1
Function ExportAsCSV(ByVal charToEncode As String, _
ByVal filePath As String, ByVal filename As String) As Boolean
'Function to Export string to CSV. Returns True/False if successful
'Tested and working on PC XL2003,2007 & 2010 // MAC XL2011
'On Error GoTo Err:
On Error GoTo 0
Open filePath & filename For Output As #1
Print #1, charToEncode
Close #1
ExportAsCSV = True
On Error GoTo 0
Exit Function
Err:
On Error GoTo 0
ExportAsCSV = False
End Function
エラーの原因となる引数の例は次のとおりです。
filePath : "Untitled:Users:ooo:Desktop:New" : String
filename : ":FloridaRhum Barbancourt 5 Star Reserve Speciál 8 Years Old.csv" : String
これは間違いなくファイル名であり、例として「:test.csv」に変更した場合に問題が発生します。個々の単語もすべて正常に機能するため、エンコーディングの問題ではないようです。同じ長さの長いファイル名を生成する場合も問題ありません。
私は困惑しています..何かアイデアはありますか?
編集:
また、追加するだけで、Open filePath & filename For Output As #1
実際には正しいファイル名が正しい場所にあるファイルが生成されます。ただし、VBAはエラーを生成するため、何も書き込まれず、ファイルはゼロバイトになります。