![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?a65a0e2)
添付図のような、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も見ています
-
今年はじめたいことは?
今年はこれをはじめたい!ということを教えてください!
-
スマホに会話を聞かれているな!?と思ったことありますか?
スマートフォンで検索はしてないのに、友達と話していた製品の広告が直後に出てきたりすることってありませんか? こんな感じでスマホに会話を聞かれているかも!?と思ったエピソードってありますか?
-
みんなの【マイ・ベスト積読2024】を教えてください。
積読、ついついしちゃいませんか?そこでみなさんの 「2024年に買ったベスト積読」を聞きたいです。
-
この人頭いいなと思ったエピソード
一緒にいたときに「この人頭いいな」と思ったエピソードを教えてください
-
「これいらなくない?」という慣習、教えてください
現代になって省略されてきたとはいえ、必要性のない慣習や風習、ありませんか?
-
マクロから出力される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
エクセルで文字列をtxtファイルに変換すると"がつく
Excel(エクセル)
-
9
EXCEL→CSV保存時のダブルクォーテーションについて
Visual Basic(VBA)
-
10
CSVファイルからダブルクォーテーションを削除したい。VBS使用で。
Word(ワード)
-
11
タブ区切りデータからダブルコーテーションを外したい
Excel(エクセル)
-
12
Excel マクロ VBA プロシージャが大きすぎます のエラー対処方法
Visual Basic(VBA)
-
13
【Excel VBA】マクロでExcel自体を終了させたい
Excel(エクセル)
-
14
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
15
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
16
ExcelVBA メモ帳を起動し名前を付けて指定フォルダに保存
Visual Basic(VBA)
-
17
【Excel VBA】CSV取込時、数字の先頭の0を消えないようにするには?
Excel(エクセル)
-
18
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
19
エクセルでCSVファイルとして保存時 マークの増加を防ぐ方法を教えてください"
Excel(エクセル)
-
20
EXCELにcsv形式の外部データを取り込む際にカンマ区切りで取り込も
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルvbaでdocuworksprinter...
-
Excel 相対パス
-
VBAでパワーシェルを実行したい...
-
xcopyコマンドの進行状況を表示...
-
エクセルVBAで一つ上の階層...
-
実行ファイルのパスを取得したい
-
C++でネットワークパスのファイ...
-
ExcelVBAの使い方 ¥の使い方...
-
EXCEL(VBA)で指定フォルダ内の...
-
【VB.NET】App.configにファイ...
-
エクセルのマクロで特定フォル...
-
outlook開けない
-
VBA★PDFをPDFアプリで印刷し...
-
【VBA】ExcelマクロでCSVファイ...
-
fopenでのパス指定
-
アプリケーションのインストー...
-
A列に記載されているフォルダ...
-
開いているファイルを削除し、...
-
リストボックスにファイル名の...
-
(GCCコンパイラ)動的リンクを絶...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルvbaでdocuworksprinter...
-
エクセルVBAで一つ上の階層...
-
xcopyコマンドの進行状況を表示...
-
Excel 相対パス
-
コマンドプロンプトのコピー関...
-
ExcelのVBAで上書き保存を確...
-
【VB.NET】App.configにファイ...
-
EXCEL(VBA)で指定フォルダ内の...
-
エクセルのマクロで特定フォル...
-
ExcelVBAの使い方 ¥の使い方...
-
【VBA】ExcelマクロでCSVファイ...
-
VBAでパワーシェルを実行したい...
-
実行ファイルのパスを取得したい
-
fopenでのパス指定
-
VBA★PDFをPDFアプリで印刷し...
-
パスワード保護されたExcelファ...
-
VBS パスに変数を入れたい
-
SaveAsの保存先について
-
アプリケーションのインストー...
-
【Excel VBA】Power Qurry のソ...
おすすめ情報