• ベストアンサー
  • すぐに回答を!

EXCEL VBA でTEXT出力する場合

EXCEL VBAでCSVファイルにTEXT出力したいのですが、 Write # ステートメントで出力すると出力文字列の前後に 勝手に'"'(ダブルクォーテーション)が入ってしまいます。 これを回避する方法はあるのでしょうか。

共感・応援の気持ちを伝えよう!

  • 回答数1
  • 閲覧数8305
  • ありがとう数5

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.1
  • ARC
  • ベストアンサー率46% (643/1383)

Print # を使えばいいと思います。 Dim FileNo as Integer FileNo = FreeFile() Open "XXX.CSV" For Output As #FileNo Print #FileNo , "A,1,2" Close #FileNo こんな感じで。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

さっくり解決しました ありがとうございます。

関連するQ&A

  • Excel VBAでのテキスト出力について

    excel vbaでの文字列出力について エクセルからテキスト(メモ帳とか)に出力したいのですが 下記のように出力できなくて困っております。 どなたか教えてほしいです。 ●入力エクセル AAA BBB CCC DDD EEE セル(1,1)~(1,5)にそれぞれ文字列が入っている状況です。 これを下記のように出力したいのです。 ●テキスト出力 "AAA","BBB",CCC,"DDD",EEE CCCとEEEをダブルクォーテーションを付けないで出力したいのです。 出力の方法でwriteとprintがありますが writeで Write #1, Cells(1,1),Cells(1,2),Cells(1,3),Cells(1,4),Cells(1,5) やると、自動で全ての文字がダブルクォーテーションで囲まれて、カンマが自動でつき "AAA","BBB","CCC","DDD","EEE" のようになってしまします。CCCとEEEのダブルクォーテーションが不要です。 printで Print #1, CStr(Cells(1,1)), & "," CStr(Cells(1,2)), & "," Cells(1,3), & "," CStr(Cells(1,4)), & "," Cells(1,5) とすると "AAA", "BBB", CCC, "DDD", EEE となり、カンマの後ろに空白が何個か入った状態になります。 (ブラウザでは空白が分かりづらいですが、テキストですと入っております。) Trim関数でTrim(",")とか色々試しましたが上手くいきません。 どうしたら望み通りの出力ができるでしょうか。 ぜひ教えて頂きたいです。 よろしくお願いします。

  • CSVファイルへの文字列データの書き出しについて

    OS:WindowsXP、Excel:2003 です。 Excelマクロ(VBA)で、あるデータをCSVファイルに出力しているのですが、 文字列型(String)を書き出すと、必ずダブルクォーテーションで囲まれます。 CSVへ書き出すときは、そういう仕様になっているということは分かったのですが、 処理の都合上、どうしてもダブルクォーテーションで囲まずに書き出ししたいと思っています。 そういう場合にはどのようにすれば良いのか教えて下さい。 ちなみに、書き出しは「Write」を使っています。

  • 0が消える:WRITEを使ってTEXT出力

    ワークシートの一部をカンマ区切りのテキストとして出力しようとしています。ワークシートには文字列と数値が混在しています。文字列は"文字列"としてする必要があります。数値はそのまま出力します。 ワークシート上で文字列あらかじめ""を付加しておくと、CSV保存の際に、""文字列""となるので、CSV形式は断念しました。 そこでVBAでWRITEを使い、 Dim i, j As Integer i = 2 j = 1 For i = 2 To 5 Write #1, Worksheets("diff").Cells(i, j).Value, Worksheets("diff").Cells(i, j + 1).Value, Worksheets("diff").Cells(i, j + 2).Value, Next i Close #1 といった感じで挑戦しています。ところが、セルの値が1より小さい数値、つまり0から始まる場合には、始めの0が消えてしまいます。  セルの値 0.****  出力された値 .**** 「それが仕様だよ」と言う場合には、何か良い方法を教えていただけると幸いです。

  • ExcelのVBAでCSVを読み込むと通貨になる

    Excel2010のVBAでCSVファイルを読み込んで処理させたいのですが、読み込んだデータをExcelが勝手に別のデータに変えてしまうので困っています。 例えば、123,456というデータは、フィールドにカンマがあるので、CSVでは"123,456"となりますが、これを以下のようなVBAのコードで読み込ませると、書式が通貨として扱われてしまって、データも123456になってしまいます。文字列として読み込まれていれば正しいデータとして読み込まれるように思うのですが、文字列として読み込ませる方法が分かりません。正しく元のデータ123,456のまま読み込ませるにはどうすればいいのでしょうか。 なお、CSVの各フィールドにカンマやダブルクォーテーションが混在していると、各フィールドに分割する処理が複雑でよく分からないので、下記のコードのようにExcelの機能でCSVを各フィールドに分割される方法で読み込ませたいです。 よろしくお願いします。 Workbooks.Open Filename:= "file.csv"

  • EXCEL→CSV保存時のダブルクォーテーションについて

    下記のようにEXCELマクロにてEXCELファイルをCSVファイルに保存しようとしています。 NewBook.SaveAs Filename:="test.csv", FileFormat:=xlCSV, CreateBackup:=False このとき、セル値にダブルクォーテーションが含まれていると、出力CSVファイルの値がダブルクォーテーションで囲まれてしまいます。 ●ダブルクォーテーションが含まれていない場合 セル値→A列:ABC     B列:DEF CSVファイル→ABC,DEF ●ダブルクォーテーションが含まれている場合 セル値→A列:A"C     B列:DEF CSVファイル→"A"C",DEF 後者の場合もダブルクォーテーションで囲まれないようにするにはどうすればよいでしょうか。

  • エクセルVBAで ” をテキスト出力したい

    ExcelVBAで、ダブルコーテーションを含む文字列をテキスト出力したいです。 下記を出力したいのですが書き方がわかりません。 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> × Print #1,"<meta http-equiv=" & """ & "Content-Type" & " content=" & """ & "text/html; charset=UTF-8" & """ & ">" エラーになってしまします。 記述方法をご教示ください。

  • EXCEL VBAでのCSVファイルの編集

    CSVファイル(ダブルクォーテーション)形式のファイルをEXCEL VBAにて行の編集(削除)をした後、上書き保存をしたらダブルクォーテーション区切りではなくカンマ区切りのCSVファイルの形式になってしまいます。 ダブルクォーテーション区切りのCSVファイルで上書き保存する記述があれば教えて下さい。おそらくEXCELでCSV形式の上書きはCSV2の形式で保存されるみたいです。 困っています。どなたかお助け下さい。

  • VBA EXCEL ""の付いた文字列に""""を読み込んで""""をつける方法

    EXCELのダブルクォーテーションの付いた文字列を読み込んで""""""をCSVファイルに書き込むためにはどのように記述したらよいでしょうか? CSVファイルにデータの出力はできていますがダブルクォーテーションが一つしか入らないという状況なので分かる方がいらしたら、ご教授の程お願いします。 です。 Private Const g_cnsCOLEDIT = "77777777777777777777777777777777777777777777777777" Private Function FP_EDIT_COLUMN(SH As Worksheet, GYO As Long, COL As Long) As String Dim strTEXT As String strTEXT = Trim(SH.Cells(GYO, COL).Value) Select Case Mid(g_cnsCOLEDIT, COL, 1) Case "7" ' 自動判定(ダブルクォーテーションの付いた文字のみ「""」囲い) If strTEXT = "" Then FP_EDIT_COLUMN = strTEXT ElseIf strTEXT = g_cnsDQ Then ' ダブルクォーテーション FP_EDIT_COLUMN = g_cnsDDQ & strTEXT & g_cnsDDQ Else FP_EDIT_COLUMN = strTEXT ' その他(文字列) End Select ' カラムを加算 COL = COL + 1 End Function

  • TEXT関数に書式記号を表示させる方法について

    エクセルのTEXT関数で””の中に書式記号を表示させる方法を探しています。 例えば =TEXT(1,"ymd-yyyymmdd") 表示させたい文字列は「ymd-19000101」なのに ymdが書式記号として「0011-19000101」と表示されてしまいます。 別個にして文字列を結合させる方法ではなく、ダブルクォーテーションの中に書く方法はあるのでしょうか?エスケープ文字のようなものはあるのでしょうか? 宜しくお願いします。

  • EXCELのVBAで

    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 ・・・ とは出来ませんでしょうか?