人生のプチ美学を教えてください!!

こんにちは。

エクセル2010.2013で指定した範囲のセルを新たにCSVファイルで保存するVBAについて
悩んでいます。
下記を試しましたが実行はされるのですが、ファイルがCSVファイルになってくれません。
どうしたらいいでしょうか?

Sub Sample()
Dim myRng As Range, myFileName As String
Set myRng = Application.InputBox("はんいをしてい", , , , , , , 8)
If myRng Is Nothing Then Exit Sub
myFileName = Application.GetSaveAsFilename(FileFilter:="CSVファイル (*.csv,*.csv")
If myFileName = "False" Then Exit Sub
Application.ScreenUpdating = False
With Worksheets.Add
myRng.Copy .Cells(1, 1)
.Move
End With
With ActiveWorkbook
.SaveAs Filename:=myFileName, FileFormat:=xlCSV
.Close False
End With
Application.ScreenUpdating = True
Set myRng = Nothing
End Sub

↑を実行するとCSVの取り込み範囲を指定し、別ファイルでの保存はできるのですが
保存したファイルが添付ファイルのようになってしまっています。
カンマ区切りになっていないといいますか、、。
拡張子は.csvになっています。

お詳しい方いらっしゃいましたらご教授いただけると幸いです。
よろしくお願いいたします。

「指定した範囲をVBAで保存」の質問画像

A 回答 (1件)

出力された CSV の中身がどんな状態になっているのかはメモ帳でひらいてみればわかります。


「範囲,あいう」と 1つのセルに閉じ込められてしまった部分、メモ帳で開いたときにどのように記録されているかを確認してください。
「範囲」と「あいう」の間にあるのはカンマのようで本当はカンマじゃないとか。
"範囲,あいう" のようにダブルクォーテーションで囲まれて記録されているとか。
もともと 「範囲,あいう」 のようになっていたデータだとか。

というように Excel が CSV ファイルを開いて解釈した結果ではなく、何の修飾も入らないメモ帳で開いてみると CSV ファイルの中で何が起きているのかがわかると思います。
そうすれば「なぜそのように CSV に記録されているのか。 もともと Excel 上でどんなデータだったのか」 というところに考えが移ると思います。

VBA のコードとしては特に問題ないような気はします。
私の Excel 2013 で実行してみても問題は起きませんでした。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!