No.3ベストアンサー
- 回答日時:
こんにちは。
Unicodeでよければ、5年ほど前に作ったものがありますので、CSV化のコードを提供します。
どこかに、ActiveX やフォーム・コントロールのボタンとマクロを設定してください。昔のままですが、Excel 2010で試してみて、Unicodeは、出力しています。(おそらく、97以上なら、どのバージョンでも、可動するはずです。)
'標準モジュール (ActiveX コントロールの場合は、ボタンを設定したシート)
'最初に、出力範囲を選択してから、ボタンなどで実行してください。
'//
Sub CSV_OutputByUnicode()
Dim rng As Range
Dim i As Long, j As Long
Dim Fso As Object
Dim f As Object
Dim fName As Variant
Dim buf As String
Dim TxtLine As String
Dim objTxt As Object
Dim OverWrite As Boolean
Dim mPath As String
'出力パス
mPath = ActiveWorkbook.Path & "\"
Set rng = Selection
If ActiveWorkbook.Path = "" Then MsgBox "一旦ファイルを保存してください。", vbExclamation: Exit Sub
'範囲のチェック(マウスで選択)
If rng.Cells.Count < 3 Then
MsgBox "最初に、範囲を選択してください。", vbExclamation
Exit Sub
End If
On Error GoTo ErrHandler
Start:
Do
fName = Application.InputBox("出力名を入れてください。", "CSV出力", Type:=2)
If VarType(fName) = vbBoolean Then Exit Sub
Loop Until Trim(fName) <> ""
fName = mPath & fName
'拡張子のチェック
If StrComp(Right(fName, 4), ".csv", vbTextCompare) <> 0 Then
fName = StrConv(fName & ".csv", vbNarrow)
End If
'ファイルの上書きチェック
If Dir(fName) <> "" Then
If MsgBox("上書きしますか", vbQuestion + vbOKCancel) = vbOK Then
OverWrite = True
Else
GoTo Start
End If
End If
'出力
Set Fso = CreateObject("Scripting.FileSystemObject")
Set f = Fso.CreateTextFile(fName, OverWrite, True)
For i = 1 To rng.Rows.Count
For j = 1 To rng.Columns.Count
buf = buf & "," & rng.Cells(i, j).Text
Next j
If TxtLine = "" Then
TxtLine = Mid(buf, 2)
Else
TxtLine = TxtLine & vbCrLf & Mid(buf, 2)
End If
buf = ""
Next i
f.Write (TxtLine & vbCrLf)
f.Close
ErrHandler:
If Err.Number > 0 Then
MsgBox Err.Number & " : " & Err.Description
Else
MsgBox fName & vbCrLf & "出力しました。", vbInformation
End If
Set objTxt = Nothing
Set f = Nothing
Set Fso = Nothing
Set rng = Nothing
End Sub
'//
No.2
- 回答日時:
日本語エクセルの標準機能では、csvファイルを含むテキストファイルへの保存時には、文字コードをJIS8ビットコードとシフトJISコードに変換してしまう仕様だから無理。
VBAプログラムを書いて独自にユニコードのままテキストファイルへ保存するか、ソフトウェア開発業者にそうしたプログラム開発を発注すれば可能。
No.1
- 回答日時:
エクセルだけでは無理なようです。
とりあえず Excel形式(*.xlsx) 等で保存し、
それを別のソフトで編集する必要がありそうです。
たとえば LibreOffice Calc を使用するとCSV保存時に文字コードを選択できます。
ここで多言語対応の文字コード、たとえば Unicode(UTF-8) を指定すると
外国語を含んだデータも保存できるかと思います。
ただ「システムにインポート」して使用するとのことですが、
そのシステムがインポート可能な文字コードが決まっているかと思います。
そのシステムが、たとえば日本語Windows環境で広く使用される
Shift_JIS, Windows-31J, MS932
などと呼ばれる文字コードのファイルしかインポートできないとすれば、
どうやってもベトナム語を含んだデータは投入できないことになります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA初心者です。電話番号の数字の前に0を表示させたいです。 2 2022/12/14 03:58
- Visual Basic(VBA) VBAで出力したCSVファイルの先頭にカンマを挿入したい 5 2022/10/14 12:20
- Excel(エクセル) CSVファイルがカンマ区切りにならない。対処法を教えていただきたいです。 仕事でSMS一斉送信ができ 2 2022/07/01 21:24
- Excel(エクセル) エクセルでcsvファイルを開いてVBAを使いたい 7 2022/04/28 11:12
- Excel(エクセル) エクセル テーブル機能の不明点 2 2022/04/14 14:10
- その他(Microsoft Office) VBA CSV出力について 3 2023/04/19 14:14
- Outlook(アウトルック) 【 Windows 10 】アドレス帳に正しくインポートを完了させたい。 3 2023/04/23 13:41
- Excel(エクセル) 【マクロ】webアドレスにて指定されたCSVファイル【excelソフト表示】を印刷する件 1 2023/02/15 01:52
- Access(アクセス) CSVファイルの「0落ち」にVBA 6 2023/02/02 15:27
- Visual Basic(VBA) エクセルVBAについて 8 2022/07/13 22:41
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語での縦方向のファイル出力...
-
ファイル形式またはファイル拡...
-
Wordマクロで指定したフォルダ...
-
ファイル出力の場所を指定
-
1行ずつではなくまとめてファイ...
-
出力をExcelにすることは可能??
-
C言語でのppmファイル作成
-
Acccess レポートをグループ別...
-
AccessVBA複数レポート条件毎に...
-
c言語の質問です。 ランダムに4...
-
OCRで起こしたテキスト文字をCS...
-
MATLABのCSV形式での書き込みに...
-
Excel のページを Jpegファイル...
-
文字列の出力で
-
pgm画像入出力(C言語)
-
絶対パスをクリップボードへコピー
-
C言語でBMP画像(ファイル)は...
-
setvbufってどう使うの?
-
CADの無い環境の得意先に図面を...
-
ワードからPDF変換でグラフが表...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンド(例えばls)の出力結果...
-
ファイル出力の場所を指定
-
VC++でUTF-8のファイルを出力し...
-
テキストファイルに改行コード...
-
シェルコマンドの 2>&1 とはど...
-
Acccess レポートをグループ別...
-
Wordマクロで指定したフォルダ...
-
二次元配列をクリップボードに...
-
ファイル形式またはファイル拡...
-
CreateProcess関数と実行後の戻...
-
fortranのtxtファイル出力書式...
-
サウンド出力のデバイスを選択...
-
VBA でメモ帳へ保存する際の保...
-
1行ずつではなくまとめてファイ...
-
VBSでEXCEL⇒CSV変換で日付の書...
-
C++ fprintf_sの使い方がわからん
-
ファイルの文字コードをUTF-8に...
-
pLaTeX の EPSファイル読み込み...
-
AccessVBA複数レポート条件毎に...
-
標準出力とファイルに効率的に...
おすすめ情報