ここから本文です

EXCEL VBA でファイル名と文字コードを指定して保存する場合に関しての質問です。

アバター

ID非公開さん

2018/3/1219:06:21

EXCEL VBA でファイル名と文字コードを指定して保存する場合に関しての質問です。

EXCELのデフォルト設定である文字コードShiftJISでCSVファイルとして保存したいのですが、VBAで指定しても文字コードが変わってしまっているようで、他のシステムにインポートした時に文字化けしてしまいます。
どうしたら文字コードをShiftJISで保存できますか?
よろしくお願いします。

下記コードをご参照ください。


'ファイル名を指定する
Dim FileName As Variant

FileName = Application.GetSaveAsFilename(InitialFileName:=Format(Date, "yyyymmdd") & "-" & Format(Time, "hhnn") & "-" & "在庫" & ".csv", _
FileFilter:="CSVファイル(*.csv),*.csv")

'CSV形式で保存する
If FileName <> "False" Then

'文字コードにShiftJISを指定する
With ActiveWorkbook.WebOptions
.Encoding = msoEncodingJapaneseShiftJIS
End With

ActiveWorkbook.SaveAs FileName
End If

閲覧数:
954
回答数:
2
お礼:
100枚

違反報告

ベストアンサーに選ばれた回答

Prometheusさん

2018/3/1310:26:17

今試しましたが、

ActiveWorkbooks.SaveAs Filename:=FileName, FileFormat:=xlCSV

で、作成されるのは、「Shift-JIS」です。

というか、文字コードを指定しなくても、標準で、「Shift-JIS」になります。

何か、テキストエディタ(メモ帳では、文字コードが分からない)をお持ちでしたら、文字コードを確認できるのですが・・・

私、「EmEditor」というテキストエディタを使っているのですが、無償版もあります。

このエディタでは、開いたファイルの文字コードが右下に表示されるので、確認が簡単です。

  • アバター

    質問者

    ID非公開さん

    2018/3/1823:15:16

    回答ありがとうございました。
    文字コードを指定しなくてもShift-JISになるはずなのにならない…と悪戦苦闘していたつもりでしたが、よくよく見なおしてみたらファイルフォーマットの指定が不十分でした。

    FileFormat:=xlCSV これを入れるだけで解決できました。

    ↓以下、解決したコードです。

    'ファイル名を指定する
    Dim FileName As Variant

    FileName = Application.GetSaveAsFilename(InitialFileName:=Format(Date, "yyyymmdd") & "-" & Format(Time, "hhnn") & "-" & "在庫" & ".csv", _
    FileFilter:="CSVファイル(*.csv),*.csv")

    'CSV形式で保存する
    If FileName = "False" Then
    Exit Sub
    Else
    ActiveWorkbook.SaveAs FileName, FileFormat:=xlCSV
    End If

    いち早く回答をくださったlin_nyan36さんをベストアンサーとさせていただきます。
    ありがとうございました。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

ベストアンサー以外の回答

1〜1件/1件中

hdu********さん

2018/3/1310:10:56

2つ方法が考えられます。

1、ワークシートをCSVで保存せず、セルを一つずつ読み込んでテキストファイルとして出力する。

2、一度CSV出力したファイルをもう一度OpenステートメントやFilesystemObjectで読み込んで、改めて文字コードを指定して出力しなおす。

今のママの方法じゃ文字コードは指定できない筈です。
https://msdn.microsoft.com/ja-jp/vba/excel-vba/articles/workbook-sa...

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる