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!
![](https://assets.st-note.com/img/1714350288050-RWEvcKzztW.png?width=800)
式。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系ファイル!
この記事が気に入ったらサポートをしてみませんか?