- 締切済み
EXCEL CSVにて保存するときのダブルクオテーションについて
いつもお世話になっております。 csvを開いてEXCELにてCSV出力を行おうとして、 全件をダブルクオテーションで囲まなければならないのですが、 csvを開く前にテキストデータとしてメモ帳で開いたらダブルクオテーションが不可されていたのですが、EXCELにて開いた後に保存したらダブルクオテーションが消えました。付加させたまま出力するにはどうすればいいのでしょうか?
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- venzou
- ベストアンサー率71% (311/435)
#3です。 質問の意図を読み違えてました、ごめんなさい。 無視してください。
- venzou
- ベストアンサー率71% (311/435)
Excel上で "abc" と表示されているデータををcsvで保存すると自動的に """abc""" になると思います。 すでに、csvファイルが "abc" になっているなら、テキストエディタで " を """ に置換して、"""abc""" とすればいいと思います。
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 もともと、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)
マクロを使用するしか方法はないですね。