Registered 2022.09.09 Update 2023.05.21 技術習得:業務系アプリQ&A,独自開発
Registered 2022.09.09 Update 2023.05.21 技術習得:業務系アプリQ&A,独自開発
Excelでは、Shifi-JIS「CSV (コンマ区切り)(*.csv)」とUTF-8「CSV UTF-8(コンマ区切り)(*.csv)」のCSVが書き出せます。
Shifi-JISでは使えない漢字があるため、UTF-8で保存することが推奨されています。
ただ、UTF-8形式を扱えないアプリもあります。
どちらを使うかはデータ使用者に確認して作成したほうが良いでしょう。
Adobe IllustratorとInDesignにはデータの差し込み機能があり、CSVファイルを使います。
この時注意したいのは「IllustratorはUTF-8、InDesignはShift-JIS」と分かれていることです。
同じ会社でなぜ違うのか。
私はInDesignのCSV差し込みはあまり行いませんが、Illustratorは使うため、ExcelリボンからExcelVBAを呼び出しCSV書き出しを行っています。
Excelのシート1つを表示した状態で以下のVBAを実行すると、UTF-8に対応したCSVファイルの書き出しができます。
'開いているシートをCSV(UTF-8)で書き出す
Sub writeCSV_utf8()
Dim ws As Worksheet
Set ws = ActiveSheet
Dim csvFile As String
csvFile = ActiveWorkbook.Path & "\data_utf8.csv"
'ADODB.Streamオブジェクトを生成
Dim adoSt As Object
Set adoSt = CreateObject("ADODB.Stream")
Dim strLine As String
Dim i As Long, j As Long
i = 1
With adoSt
.Charset = "UTF-8"
.LineSeparator = adLF
.Open
Do While ws.Cells(i, 1).Value <> ""
strLine = ""
j = 1
Do While ws.Cells(i, j + 1).Value <> ""
strLine = strLine & ws.Cells(i, j).Value & ","
j = j + 1
Loop
strLine = strLine & ws.Cells(i, j).Value
.WriteText strLine, adWriteLine
i = i + 1
Loop
.SaveToFile csvFile, adSaveCreateOverWrite
.Close
End With
MsgBox ("同一フォルダにdata_utf8.csvを書き出しました。")
End Sub
このコードはネットにあった情報を元に一部を書き換えていますが、元ネタがどこにあったか記録がありません。
Excel2019では動作可能です。
CSVファイルへの書き出しは、[ファイル]→[名前をつけて保存]から行なっても問題ありません。
「個人用マクロブック」に記述してリボンから起動できると、保存形式の選択ミスを防ぐことができるため、VBAを使っても良いかなと思います。