
添付図のような、Excel2003で作成した表内のデータを
CSVで保存するマクロを作成したのですが、
図のように、CSVファイルに「""」で値が囲まれた状態で、
保存されてしまいます。
下記にマクロを記載しますので、
どうすれば文字列が「""」で囲まれずに、
カンマ区切りだけのデータで出力されるのか、
ご存知の方おられましたら、ご教示お願い致します。
Sub csv保存()
Dim フォルダ名 As String
Dim パス名 As String
Dim ファイル名 As String
Dim データ As Variant
Dim 行数 As Long, 列数 As Integer
Dim i As Integer, j As Long, k As Long
ファイル名 = "test.csv"
フォルダ名 = "csv"
パス名 = ActiveWorkbook.Path & "\" & _
フォルダ名
'csvフォルダが存在しなければ作成する
If Dir(パス名, vbDirectory) = "" Then
MkDir パス名
End If
ChDir パス名
Open ファイル名 For Output As #1
For i = 1 To Worksheets.Count
Worksheets(i).Activate
Worksheets(i).Cells(1, 1).Select
ActiveCell.CurrentRegion.Select
行数 = Selection.Rows.Count
列数 = Selection.Columns.Count
For j = 1 To 行数
For k = 1 To 列数 - 1
データ = Selection.Cells(j, k) _
.Value
Write #1, データ;
Next k
Write #1, Selection.Cells(j, 列数) _
.Value
Next j
Next i
Close #1
End Sub

No.2ベストアンサー
- 回答日時:
Write # は文字列を""で囲んで出力する仕様になっています。
そのまま出力したければ、Print #を利用すればよろしいかと。
ただし、Printの場合は区切り文字(カンマ)を自動で出力してくれませんので、併せて出力する必要があります。
For j = 1 To 行数
For k = 1 To 列数 - 1
データ = Selection.Cells(j, k) .Value
Print #1, データ; ",";
Next k
Print #1, Selection.Cells(j, 列数).Value
Next j
なお、いらぬおせっかいですが、ドライブが複数ある環境下だと、
ChDir パス名
だけでは必ずしもcvsフォルダ内に、ファイルが作成されるとは限りません。
Open パス名 & "\" & ファイル名 For Output As #1
のように、フルパスで指定しておいた方が確実かと…
ご回答ありがとうございます。
Printとカンマを手動で出力することで、
期待動作をさせることが出来ました。
>必ずしもcvsフォルダ内に、ファイルが作成されるとは限りません。
そうなのですね。。全く考慮していませんでした。
是非反映させたいと思います。
No.1
- 回答日時:
For j = 1 To 行数
For k = 1 To 列数 - 1
データ = Selection.Cells(j, k).Value
' Write #1, データ;
Print #1, データ;
Next k
' Write #1, Selection.Cells(j, 列数).Value
Print #1, Selection.Cells(j, 列数).Value
Next j
といった具合に 『Write』を『Print』変更してみましょう
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Visual Basic(VBA) VBA 別ブックからの転記の高速化について VBA 別ブックからの転記の高速化についてご教授下さい。 19 2022/07/26 13:07
- Visual Basic(VBA) VBA処理追加 こちらでご教示頂いたのですが回答完了させてしまいましたのでこちらからまた質問させてく 2 2022/10/27 09:57
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
このQ&Aを見た人はこんなQ&Aも見ています
-
マクロから出力されるcsvのダブルコーテーションをなくしたい。
Visual Basic(VBA)
-
【ExcelVBA】各セルをダブルクォーテーションで括ってCSV保存したい
Visual Basic(VBA)
-
Excelでcsvやtxtで保存する時にダブルクォートが勝手に付く
Excel(エクセル)
-
-
4
カンマ区切りのCSVファイルから"を削除したい
その他(プログラミング・Web制作)
-
5
Excelの保存で "を付けないように保存できる?"
Excel(エクセル)
-
6
各項目がダブルクォーテーションで囲まれたカンマ区切りのCSVを作る方法?
Excel(エクセル)
-
7
Excel:任意の列だけCSV形式で出力したい。
Excel(エクセル)
-
8
【Excel VBA】CSV取込時、数字の先頭の0を消えないようにするには?
Excel(エクセル)
-
9
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
10
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
11
CSVファイルからダブルクォーテーションを削除したい。VBS使用で。
Word(ワード)
-
12
CSV形式にすると出てくる空白を消したいです。
その他(Microsoft Office)
-
13
エクセルで文字列をtxtファイルに変換すると"がつく
Excel(エクセル)
-
14
タブ区切りデータからダブルコーテーションを外したい
Excel(エクセル)
-
15
EXCEL→CSV保存時のダブルクォーテーションについて
Visual Basic(VBA)
-
16
EXCELVBAにて文字列にして「01」と表示させて、CSV形式で保存すると「1」になってしまう。
その他(プログラミング・Web制作)
-
17
【Excel VBA】マクロでExcel自体を終了させたい
Excel(エクセル)
-
18
ダブルコーテーション付きでCSV出力
Visual Basic(VBA)
-
19
ExcelVBA メモ帳を起動し名前を付けて指定フォルダに保存
Visual Basic(VBA)
-
20
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルvbaでdocuworksprinter...
-
エクセルVBAで一つ上の階層...
-
コマンドプロンプトのコピー関...
-
【VB.NET】App.configにファイ...
-
Excel 相対パス
-
実行ファイルのパスを取得したい
-
A列に記載されているフォルダ...
-
ExcelVBAの使い方 ¥の使い方...
-
VBA★PDFをPDFアプリで印刷し...
-
xcopyコマンドの進行状況を表示...
-
VBAで今日の日付のフォルダを作...
-
ExcelのVBAで上書き保存を確...
-
fopenでのパス指定
-
C++でネットワークパスのファイ...
-
Excel ハイパーリンクについて
-
エクセルのマクロで特定フォル...
-
VBAでパスを取得した後、分割し...
-
DBから取得したデータをCSVファ...
-
アプリケーションのインストー...
-
VBAとResgen.exeを使用して、re...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルvbaでdocuworksprinter...
-
エクセルVBAで一つ上の階層...
-
xcopyコマンドの進行状況を表示...
-
Excel 相対パス
-
【VB.NET】App.configにファイ...
-
【VBA】ExcelマクロでCSVファイ...
-
エクセルのマクロで特定フォル...
-
実行ファイルのパスを取得したい
-
コマンドプロンプトのコピー関...
-
VBA★PDFをPDFアプリで印刷し...
-
VBAでパワーシェルを実行したい...
-
ExcelVBAの使い方 ¥の使い方...
-
C#でのProcess.Startと変数path
-
ExcelのVBAで上書き保存を確...
-
開いているファイルを削除し、...
-
アプリケーションのインストー...
-
【VBA】複数のtxtファイルから...
-
EXCEL(VBA)で指定フォルダ内の...
-
fopenでのパス指定
-
パスワード保護されたExcelファ...
おすすめ情報