| 
    
     |  | でこぽんウマイ!さん、Jakaさん、こんにちは。 
 Jakaさんのは、既に保存されたFileを変換しているようですネ。
 私は、保存するときに処理する様にしてみました。
 シートを直接保存ではなく、まずDataオブジェクトへ格納して、
 String形式へ変換後、CSV形式へ変換、最終行のvbCrをvbLfへ変換。
 最後にFileSystemObjectを使って、テキスト保存してます。
 とっても回りくどいことをしているような気がします。
 また、こちらにはCRとLFを区別できるエディタがないので結果を確認
 出来ません。うまくいったらお知らせ下さい。
 
 <注意>
 Microsoft Forms 2.0 Object Libraryの参照設定が必要です。
 VBE画面で「ツール」→「参照設定」でCheckを入れる。
 見つからない場合は「参照」ボタンを押して、Systemフォルダ内の「FM20.DLL」
 を選択して「開く」を押します。
 
 
 Sub aaa()
 Dim strData As String, objData As DataObject
 Dim fso As Object, objText As Object, Fname As String
 Dim i As Integer
 ActiveSheet.UsedRange.Copy
 Set objData = New DataObject
 'セルデータをDataオブジェクトへ格納
 objData.GetFromClipboard
 '↓Dataオブジェクトから文字列として取り出し
 strData = objData.GetText(1)
 '↓タブ区切→カンマ区切に変換
 strData = Replace(strData, vbTab, ",")
 '↓最後のvbCr文字位置を取得
 i = InStrRev(strData, vbCr)
 '↓最後のvbCr文字をvbLfへReplace
 strData = Left(strData, i - 1) & Replace(strData, vbCr, vbLf, i)
 '↓最後のvbCr文字を削除なら
 'strData = Left(strData, i - 1) & Replace(strData, vbCr, "", i)
 
 '↓FileSystemObject
 Fname = "C:\WINDOWS\デスクトップ\temp\test.csv" '←正しいファイル名にしてね
 Set fso = CreateObject("Scripting.FileSystemObject")
 '↓書き込み専用でOpen、無ければファイルを作成
 Set objText = fso.OpenTextFile(Fname, 2, True)
 '↓文字列を保存
 objText.Write strData
 objText.Close
 Set objText = Nothing: Set fso = Nothing: Set objData = Nothing
 End Sub
 
 
 |  |