EXCELで、セルの内容をVBAでCSVにしたいのですが・・・
Dim S As String, I As Integer, D As Date
I = 123
S = "文字"
D = 2005/3/18
Open ・・・
Write #1, I, S, D
Close ・・・
とすると、
123,"文字",#2005-03-18# ・・・ となります。
123,"文字",2005/03/18 ・・・ とするには、何か方法ありますか?
また、文字の前後についている、"(ダブルコーテーション)を外して、
123,文字,2005/03/18 ・・・ とは出来ませんでしょうか?
No.1ベストアンサー
- 回答日時:
Dは文字列型にしました。
またTextStreamに書き込むためにFSとAという
変数を追加しました。
Dim S As String, I As Integer, D As String
Dim Fs As Object, A As Object
Set Fs = CreateObject("Scripting.FileSystemObject")
Set A = Fs.CreateTextFile("c:\testfile.txt", True)
I = 123
S = "文字"
D = "2005/3/18"
A.WriteLine (I & "," & S & "," & D)
A.Close
No.4
- 回答日時:
>また、文字の前後についている、"(ダブルコーテーション)を外して、
以下のコードでは、ダブルコーテーションが必要な場所には付与されますが、それはCSVを正しく出力するために必要があるからです。例えば、改行コードを含むデータをCSV出力すると、このダブルコーテーションが無いとうまく出力されません。
コードですが、勿論 Open で開いて一行ずつ処理していってもOKなのですが、EXCELにはCSV出力機能があるのだから、これを利用しました。コードが単純化されます。
また、処理件数が多い場合、VBAで自力でゴリゴリやるよりは、コンパイルされたEXCELの機能を利用する方が高速です。
Sub EXPORT_CSV()
Dim TargetArea As Range
Dim WB As Workbook
'対象範囲を定義
Set TargetArea = Sheets("Sheet1").Range("A1:E50")
'新規ブック追加
Set WB = Workbooks.Add
'コピー
TargetArea.Copy Destination:=WB.Sheets(1).Range("A1")
'CSVで保存
sFileName = Application.GetSaveAsFilename( _
FileFilter:="CSVファイル (*.csv), *.csv")
If sFileName <> "" And sFile <> "False" Then
WB.SaveAs Filename:=sFileName, FileFormat:=xlCSV
Application.DisplayAlerts = False
WB.Close
End If
End Sub
No.3
- 回答日時:
セルから値を取ることを想定して作りました。
Sub CSV_Export()
Dim myFno As Integer
Dim myLastRow As Long
Dim i As Long
Const myTXTcsv As String = "C:\My Documents\Excel\Test1.csv" '出力ファイル名
myLastRow = Range("A1").CurrentRegion.Rows.Count
'アクティブセルのA1 を基点としています。A1 が基点でない場合
'修正するから、行の数字を入れてください。
'
'Const QT As String = """" 'これを外せば、 _
"文字にクォーテーションマークが入ります。"
myFno = FreeFile
Open myTXTcsv For Output As #myFno
For i = 1 To myLastRow
Print #myFno, Cells(i, 1).Text & "," & _
QT & Cells(i, 2).Text & QT & "," & _
Cells(i, 3).Text
Next
Close #myFno
End Sub
一応、私もprint で作ってみました。
回答、ありがとうございます。
いろいろ方法があるものですね。
Print文と、Write文の使い分けが必要ですね。
昔の人間なので、LEVEL1-Basic(死語?)の時代の
うる覚えの知識を酷使して書いてます。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:48
- Android VBA、フォルダのパスに環境文字 ㉑ があり、VBAが機能しません。 2 2022/07/27 09:16
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:12
- Visual Basic(VBA) VBAでファイルを開くプログラムがエラーです 2 2023/02/21 16:56
- Visual Basic(VBA) Excel VBA メール作成について 本文の中にExcel でコピーした図を上下に2つ 貼り付けを 2 2023/06/14 01:48
- Visual Basic(VBA) サブフォルダ(データ)にある複数の.xlsxファイルのSheet3のA2セルの値で01から左側をB2 2 2022/08/14 15:46
- Excel(エクセル) Excleマクロ セル値の代入と文字列の結合について 3 2022/10/05 16:47
- Visual Basic(VBA) 以下のVBAで該当文字列の前後に付与したい。 例 前に付与 abc ユーザーID 12345 後に付 3 2022/04/19 21:50
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PS4コントローラーをPCでゲーム...
-
printfとputcharの違いは
-
携帯の液晶画像をパソコンに出...
-
COBOLのMOVEで桁数が異なる場合
-
テキストファイルから特定の文...
-
コンセントの電力は入力と出力...
-
cout と cerrの違い
-
MMDでavi出力が出来ない
-
【EIGRP】Neighbor-ChangeのMes...
-
VBA レジストリの値の読み方に...
-
TV出力ポートをOFFにすれば良い...
-
coutで出力した文字を消去する...
-
プログラムについての質問です...
-
VBAで有効数字の設定
-
VBA CSV出力について
-
PICを使って正弦波を出力
-
【エクセル、並び替えについて】
-
VBAでテキスト出力時のスペース...
-
javacoreの見方について
-
改行の仕方
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PS4コントローラーをPCでゲーム...
-
4Kの外部モニターに出力すると...
-
printfとputcharの違いは
-
VBA レジストリの値の読み方に...
-
プログラムについての質問です...
-
MMDでavi出力が出来ない
-
cout と cerrの違い
-
詳しくないので、どなたかお教...
-
COBOLのMOVEで桁数が異なる場合
-
ACCESS クエリ→フォーム...
-
VBAでテキスト出力時のスペース...
-
OBS配信すると、マイクが途切れ...
-
PS5をMacBookProに出力したいの...
-
コンセントの電力は入力と出力...
-
アクセスでエクセルに出力する...
-
printfの書式%.*s
-
Windows Formアプリからコンソ...
-
coutで出力した文字を消去する...
-
VBAで有効数字の設定
-
VBAのExecメソッドで画面を非表...
おすすめ情報