Local を考慮したSaveって何?

さて表題、考慮しないとどうなるか?から説明します
主にCSVやテキストなど、Local 情報がないデータをVBAで
雑に保存すると発生しがちな現象である
わかりやすく言えば "yyyy/mm/dd" が "mm/dd/yyyy"として保存されるなどで、発生頻度が少なく 対策は簡単だけど初心者やWin-Actr などには
迷惑な結果が起きる 、理由が分からないと \(^o^)/オワタになりがち


Public Sub test1()
Dim MePath As String
MePath = ThisWorkbook.Path & ""
Workbooks("Info.csv").SaveAs MePath & "ロケール不明のファイル.csv"
End Sub


解決方法は簡単で ExcelにLocal情報を設定し 保存するだけでOK!

Local の場所

式。SaveAs (FileName、 FileFormat、 Password、 WriteResPassword、 ReadOnlyRecommended、 CreateBackup、 AccessMode、 ConflictResolution、 AddToMru、 TextCodepage、 TextVisualLayout、 Local)


Local のところを True するだけで良し

Public Sub test2()
 Dim MePath As String
 MePath = ThisWorkbook.Path & ""
 Workbooks("Info.csv").SaveAs MePath & "ロケール不明のファイル.csv", xlCSV, , , , , , , , , , True
End Sub
Public Sub test3()
 Dim MePath As String
 MePath = ThisWorkbook.Path & ""
 Workbooks("Info.csv").SaveAs "C:" & "ロケール不明のファイル.xlsx", xlOpenXMLWorkbook, , , , , , , , , , True
End Sub

これで正確にLocalが反映され保存されます、通常ファイルにLocal情報は記録されているので自動判定で問題ないのだけど、たまにトラブルを起こす。

引数は省略しがちだけど、Local は意識しましょうね
特にtext系ファイル!

この記事が気に入ったらサポートをしてみませんか?