No.2ベストアンサー
- 回答日時:
Excelの機能では、『,』で区切ったcsvファイルしかできません。
質問にあるように、『"』で囲ったcsvファイルを作れるようにしてみました。
ただし、長くなるので、Excelの機能で『,』で区切っただけのcsvファイルを『"』で囲むように書き換えるようにしてみました。
全てをExcelVBAで書けましたが、使用環境、Bookの構造、Bookの重要度など不明なので、一旦作ったcsvファイルを書き換えるようにしています。
ツール→マクロ→Visual Basic Editor でVBE画面に移り、挿入→標準モジュール で標準モジュールを挿入します。出てきたコードウインドウに下記マクロをコピーして貼り付けます。(新規Bookでかまいません)
操作手順は、シートに戻り、
1.ツール→マクロ→マクロ でCSVchangeを実行。
2.元のcsvファイルを選択する。
3.元のcsvファイルがあったフォルダに、"chg"+元のcsvファイル名 の新ファイルが作成されます。
ご参考に。
Sub CSVchange()
Dim csvFL1 As Variant '元のCSVファイル
Dim csvFL2 As String 'ダブルクオテーションで囲んだCSVファイル
Dim rec As String 'CSVファイルの1行
Dim FLNo1 As Integer 'ファイル番号
Dim FLNo2 As Integer 'ファイル番号
Dim dq As String 'ダブルクオテーション
dq = Chr(&H22)
'元のcsvファイルを選択する
Dim myTitle As String 'タイトル
Dim myFilter As String '保存ファイル名
myTitle = "変換するcvsファイル名を指定します"
myFilter = "csvFile(*.csv),*.csv"
csvFL1 = Application.GetSaveAsFilename(FileFilter:=myFilter, Title:=myTitle)
If csvFL1 = False Then Exit Sub
'書き換えるcsvファイル名を自動で決める。(chg + 元のファイル名にする)
Dim pot As Integer
Dim L As Integer
For L = Len(csvFL1) To 1 Step -1
If Mid(csvFL1, L, 1) = "\" Then
pot = L: Exit For
End If
Next
csvFL2 = Left(csvFL1, pot) & "chg" & Right(csvFL1, Len(csvFL1) - pot)
'ファイルを開く
FLNo1 = FreeFile: Open csvFL1 For Input As #FLNo1
FLNo2 = FreeFile: Open csvFL2 For Output As #FLNo2
'書き換える
While Not EOF(FLNo1)
Line Input #FLNo1, rec
Print #FLNo2, dq & Application.Substitute(rec, ",", dq & "," & dq) & dq
Wend
Close
MsgBox "終了しました"
End Sub
No.1
- 回答日時:
私も必要だったのですが、調べてもできなかったのです。
しようが無いので、VBAで作成しました。よろしければ使ってください。VBAは全くの独学ですので、お見苦しい点もあるかと思います。一応A列からG列を対象としています。7行目のForの制御変数の開始と終了を変えれば良いです。例えば、C列からI列が対象の場合はj=3 To 9とすればよいです。また、出力ファイル名は2行目のコーテーションマークの中を変更すれば、変えられます。
詳しい説明が必要ならば、補足してください。ある程度VBAの分かる方なら、容易に理解できると思います。
Sub write_csv_with_quote()
Open "c:\csvfile.csv" For Output As #1
'
i = 1
Do While Cells(i, 1) <> ""
csv_text = ""
For j = 1 To 7
If j > 1 Then
csv_text = csv_text & ","
End If
csv_item = Chr(34) & Cells(i, j) & Chr(34)
csv_text = csv_text & csv_item
Next
Print #1, csv_text
i = i + 1
Loop
'
Close #1
End Sub
この回答へのお礼
お礼日時:2002/06/28 12:09
早速に有難うございます、実は郵政省のハイブリッドメールを利用したいと思い、CSVに書き出したのですが、これをExcelで読むと、地番項目例えば1-2-3がの日付形式やシリアル形式になってしますので、研究中です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- システム CSVファイルのマッピング処理の省力化 1 2022/11/24 00:01
- Visual Basic(VBA) マクロを教えてください。 7 2023/06/01 19:47
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Excel(エクセル) エクセルでcsvファイルを開いてVBAを使いたい 7 2022/04/28 11:12
- Excel(エクセル) Excelの帳票形式をアクセスに取り込むため、 csvのデータ形式になるように、マクロを作成している 2 2022/06/12 22:52
- Excel(エクセル) csvファイルをExcel形式で読み込むには 2 2023/07/03 13:09
- Excel(エクセル) Excelについて教えてください。 帳票データがあります。 アクセスに取り込むため、 データ形式にし 1 2022/06/08 19:59
- Visual Basic(VBA) VBAで特定の場所にあるCSVファイル(複数)から特定場所を抜き出してExcelに転記したいです。 11 2023/05/23 16:29
- その他(プログラミング・Web制作) Pythonで、データファイルと列名ファイルを1つのファイルにしたいです。 1 2023/07/27 20:29
- その他(プログラミング・Web制作) データ解析ソフトRでのファイル入力read.csvがエラーになります 7 2022/03/27 22:11
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
MAC フォルダ内のPDF件数とペー...
-
エクセルのVBAについて とある...
-
Python CSVファイルについて
-
エクセル 指定範囲をCSV出力
-
アクセスと同フォルダのCSVファ...
-
FTPコマンド mgetでとまってし...
-
【Rコマンダー】データインポー...
-
Excelの帳票形式をアクセスに取...
-
複数のcsvファイルを統合、でも...
-
複数のCSVファイルを読み込んで...
-
エクセルマクロ、複数のCSVファ...
-
コマンドプロンプトの「%1」と...
-
コマンドプロンプトのエラーに...
-
バッチでテキストファイルから...
-
バッチ処理でファイルの中身を...
-
大量のフォルダからひとつのフ...
-
バッチ終了時にDOS窓を閉じるコ...
-
exeファイルを実行するとコマン...
-
コマンドプロンプト標準出力と...
-
.txtではなく.logの方が良いの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルのVBAについて とある...
-
csvファイルをlinuxコマンドで...
-
Python CSVファイルについて
-
FTPコマンド mgetでとまってし...
-
エクセル 指定範囲をCSV出力
-
複数のcsvファイルを統合、でも...
-
アクセスと同フォルダのCSVファ...
-
csv形式からbmpを作成
-
MAC フォルダ内のPDF件数とペー...
-
バッチ処理でcsvファイルの文字...
-
【Rコマンダー】データインポー...
-
Excelで”データ”形式のCSVが作...
-
複数のCSVファイルを読み込んで...
-
複数エクセルファイルの合成
-
コマンドによるzip圧縮
-
フォルダ内のファイル読み込み
-
EXCEL マクロが正常に動かなく...
-
gnuplotで複数csvファイルから...
-
複数のCSVファイルを1つのファ...
-
コマンドプロンプトの「%1」と...
おすすめ情報