• 締切済み

EXCEL CSVにて保存するときのダブルクオテーションについて

いつもお世話になっております。 csvを開いてEXCELにてCSV出力を行おうとして、 全件をダブルクオテーションで囲まなければならないのですが、 csvを開く前にテキストデータとしてメモ帳で開いたらダブルクオテーションが不可されていたのですが、EXCELにて開いた後に保存したらダブルクオテーションが消えました。付加させたまま出力するにはどうすればいいのでしょうか?

みんなの回答

  • venzou
  • ベストアンサー率71% (311/435)
回答No.4

#3です。 質問の意図を読み違えてました、ごめんなさい。 無視してください。

  • venzou
  • ベストアンサー率71% (311/435)
回答No.3

Excel上で "abc" と表示されているデータををcsvで保存すると自動的に """abc""" になると思います。 すでに、csvファイルが "abc" になっているなら、テキストエディタで " を """ に置換して、"""abc""" とすればいいと思います。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 もともと、Excelは、CSV をインポートするためにあって、出力は得意ではありません。 使えるかどうかは分かりませんが、以下のようなマクロを試しに作ってみました。 '標準モジュールに入れて実行してみてください。 Sub AddQtMarked() 'CSVファイルにクォーテーションマークを入れるマクロ 'バックアップは、$付きファイル名になる Dim FileName As String Dim inFNum As Integer Dim outFNum As Integer Dim TextLine As String Dim Ar As Variant Dim outLine As String Dim outFname As String Dim myPath As String Const DELIM As String = ","  FileName = Application.GetOpenFilename("Excel(*.csv),*.csv")     If FileName = "False" Then Exit Sub   outFname = Mid$(FileName, InStrRev(FileName, "\") + 1)   myPath = Replace(FileName, outFname, "")     inFNum = FreeFile()   Open FileName For Input As #inFNum   outFNum = FreeFile()   Open myPath & "$" & outFname For Output As #outFNum   Do While Not EOF(inFNum)    Line Input #inFNum, TextLine    Ar = Split(TextLine, DELIM)    outLine = strSplit(Ar) 'ユーザー定義関数    Print #outFNum, outLine   Loop   Close #outFNum   Close #inFNum   Name FileName As "tmp.csv"   Name myPath & "$" & outFname As FileName   Name "tmp.csv" As myPath & "$" & outFname End Sub Private Function strSplit(ByVal BaseArray As Variant, _             Optional DELIM As String = ",", _             Optional NumOut As Boolean = False) 'Option NumOut =True 数値は、Quotation を付加しない Dim splitedText As String Dim ea As Variant  For Each ea In BaseArray   If Len(ea) = 0 Then   splitedText = splitedText & DELIM '空の場合   Else   If NumOut And IsNumeric(ea) Then     splitedText = splitedText & DELIM & ea   Else     splitedText = splitedText & DELIM & """" & ea & """"   End If   End If  Next  strSplit = Mid$(splitedText, 2) End Function

  • toshi_2000
  • ベストアンサー率30% (306/1002)
回答No.1

マクロを使用するしか方法はないですね。

関連するQ&A

専門家に質問してみよう