- ベストアンサー
EXCELのVBAでファイル出力する際にダブルクオテーションを省きたい
はじめまして。 EXCEL2003のVBAで、セルの内容をテキストファイルに出力するマクロを組んでいます。出力はできますが、出力された文字列がダブルクオテーションで囲まれてしまいます。 どのようにしたらダブルクオテーションを省けるか教えて下さい。 処理内容:AA列を6行目から値の入っていないセルまでファイルに出力します。 ------------------------------------------------------ Private Sub OutputFile_Click() Const sDataCol As String = "AA" 'データ列 Const iDataStartRow As Integer = 6 'データ開始行 Dim iFileNo As Integer Dim sRecord As String Dim iRecCnt As Integer Dim iCounter As Integer Dim sFileName As String sFileName = CurDir & "\" & "Sample.txt" iFileNo = FreeFile Open sFileName For Append As #iFileNo iCounter = iDataStartRow Do sRecord = Range(sDataCol & iCounter).Value Write #iFileNo, sRecord iRecCnt = iRecCnt + 1 iCounter = iCounter + 1 Loop Until Range(sDataCol & iCounter).Value = "" Close #fileNo MsgBox sFileName & vbCr & _ "レコード件数=" & iRecCnt & "件", vbInformation, "ファイル出力完了" End Sub ------------------------------------------------------ セルAA6(セル書式:標準)に、abcd と入っていると、 "abcd" と出力されてしまいます。 abcd のようにダブルクオテーションを省きたいのです。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
write は文字列の項目に"を付けます。CSVファイルを簡単につくれますけど、融通性にかけます。 Print を使うと、文字列そのままでファイルに出力できるので、こちらのほうが応用が利きます。 覚えておいたほうがいいのは、Printの最後に;を付けると改行することです。逆に付けないと改行しません。 Print #1, "AAA"; Print #1, "BBB" とすると AAA BBB となりますが、 Print #1, "CCC" Print #1, "DDD" とすると CCCDDD と出力されます。
その他の回答 (1)
- hideki1976
- ベストアンサー率17% (20/116)
Writeの変わりに Printを使ってみる。 とかでどうでしょうか?
お礼
あっ!とっても簡単にできました。 ありがとうございましたm(_ _)m