![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
添付図のような、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
![「【VBA】ExcelマクロでCSVファイ」の質問画像](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/7/689971_5497d7cddccf6/M.jpg)
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の保存で "を付けないように保存できる?"
Excel(エクセル)
-
-
4
カンマ区切りのCSVファイルから"を削除したい
その他(プログラミング・Web制作)
-
5
Excelでcsvやtxtで保存する時にダブルクォートが勝手に付く
Excel(エクセル)
-
6
各項目がダブルクォーテーションで囲まれたカンマ区切りのCSVを作る方法?
Excel(エクセル)
-
7
エクセルで文字列をtxtファイルに変換すると"がつく
Excel(エクセル)
-
8
【Excel VBA】CSV取込時、数字の先頭の0を消えないようにするには?
Excel(エクセル)
-
9
CSVファイルの任意の列をダブルクォーテーションで囲みたいのですが・・・。
Excel(エクセル)
-
10
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
11
タブ区切りデータからダブルコーテーションを外したい
Excel(エクセル)
-
12
CSV形式にすると出てくる空白を消したいです。
その他(Microsoft Office)
-
13
VBAでテキスト出力時のスペースについて
Visual Basic(VBA)
-
14
EXCEL→CSV保存時のダブルクォーテーションについて
Visual Basic(VBA)
-
15
EXCELVBAにて文字列にして「01」と表示させて、CSV形式で保存すると「1」になってしまう。
その他(プログラミング・Web制作)
-
16
Excelマクロ 空白セルを無視してCSV出力
Excel(エクセル)
-
17
文字列からタブコードを取り除きたい
Visual Basic(VBA)
-
18
EXCELでCSVファイル保存するとデータが無いところにカンマ
その他(ソフトウェア)
-
19
マクロの「SaveAs」でエラーが出るのを解消したいです(再)
Visual Basic(VBA)
-
20
【Excel VBA】カンマと改行コードを取り除くマクロ
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルvbaでdocuworksprinter...
-
バッチファイル 二つ上のディ...
-
指定したフォルダ内の最新ファ...
-
エクセルのマクロで特定フォル...
-
ExcelVBAの使い方 ¥の使い方...
-
xcopyコマンドの進行状況を表示...
-
コマンドプロンプトのコピー関...
-
Excel 相対パス
-
【VB.NET】App.configにファイ...
-
ファイル名の半角スペースについて
-
outlook開けない
-
【VBA】ExcelマクロでCSVファイ...
-
パスワード保護されたExcelファ...
-
ファイル移動
-
【Excel VBA】Power Qurry のソ...
-
Objective-CのNSTaskの引数に全...
-
Cの関数で自分自身のパス取得
-
SaveAsの保存先について
-
ファイルストリームからファイ...
-
エクセルVBAで一つ上の階層...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルvbaでdocuworksprinter...
-
バッチファイル 二つ上のディ...
-
Excel 相対パス
-
エクセルVBAで一つ上の階層...
-
xcopyコマンドの進行状況を表示...
-
【VB.NET】App.configにファイ...
-
SaveAsの保存先について
-
ExcelVBAの使い方 ¥の使い方...
-
エクセルのマクロで特定フォル...
-
【VBA】ExcelマクロでCSVファイ...
-
EXCEL(VBA)で指定フォルダ内の...
-
VBA一覧取得 再投稿
-
指定したフォルダ内の最新ファ...
-
ExcelのVBAで上書き保存を確...
-
VBAでパワーシェルを実行したい...
-
VBA★PDFをPDFアプリで印刷し...
-
コマンドプロンプトのコピー関...
-
アプリケーションのインストー...
-
開いているファイルを削除し、...
-
A列に記載されているフォルダ...
おすすめ情報