以前にこんな記事を書いて、Excelでcsvを保存するときは「イラッとする」と書きましたが。。。
今日はポジティブにいきます。
ではエンジニアなら
「必要な部分だけをunicodeでストレスなく保存する」
にはどうするか!!
まずはこの下の「VBAに貼り付けるコード」を展開して、中身をまるごと、PERSONAL.XLSBの標準モジュールに貼り付けてください。
VBAに貼り付けるコード
Sub copyForCsv() 'csv文字列を作成してクリップボードにコピーするマクロ Dim i As Integer Dim j As Integer Dim text As String Dim comma As String Dim wquote As String text = "" wquote = Chr(34) Selection.Columns.AutoFit '選択範囲のデータだけをカンマ区切りで文字列連結する For i = 1 To Selection.Rows.Count comma = "" For j = 1 To Selection.Columns.Count text = text & comma & wquote & Selection(i, j).text & wquote comma = "," Next text = text & vbLf Next 'クリップボードにコピーする If Application.OperatingSystem Like "*Mac*" Then ' Is Mac. text = Replace(text, "\", "\\") text = Replace(text, wquote, "\" & wquote) MacScript ("set the clipboard to " & wquote & text & wquote) Else ' Is Windows. 'クリップボードに文字列を格納するためにテキストボックスを利用する With CreateObject("Forms.TextBox.1") .MultiLine = True .text = text .SelStart = 0 .SelLength = .TextLength .copy End With End If End Sub
使い方
- Excelのシートで「csvにしたい範囲」を選択してください
- 「表示」リボン→マクロの表示をクリックして、マクロのダイアログボックスを開きます
- さきほど標準モジュールに貼り付けた「PERSONAL.XLSB!copyForCsv」を選択し「実行」します
- 任意のテキストエディタ(おすすめはVSCode、メモ帳などでももちろん可)の新しいファイルに貼り付けます。
- そのまま「(任意の名前).csv」で保存します。
できたcsvはutf8で保存されていますから、様々なところにそのまま利用することができます。
逆にExcelでそのcsvを開くと日本語は「文字化け」しますからご注意を!
ご意見があればコメントにお願いしま~す。
今日は頑張って書いた。。。