Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


73311 / 76732 ←次へ | 前へ→

【7901】Re:カンマ区切りのCSVで保存した時の改行を削除したいのですが。。。
回答  ichinose  - 03/9/22(月) 23:46 -

引用なし
パスワード
   こんばんは。
セルA1〜A5にa,b,c,d,eと入力したシートをcsv形式で保存しました。
ヘキサダンプを見ると、
61DA
62DA
63DA
64DA
65DA
66DA
となっていますが、これがコンバージョンで
61A
62A
63A
64A
65A
66A
となるようにしました。
'=============================================
Sub main()
  Dim flnm
  flnm = Application.GetOpenFilename()
  If flnm <> False Then
    Call コンバージョン_Crなし(flnm)
    End If
End Sub
'=============================================
Sub コンバージョン_Crなし(flnm)
  Dim flno1 As Long
  Dim flno2 As Long
  Dim bt() As Byte
  Dim bta() As Byte
  path = CreateObject("Scripting.FileSystemObject").GetParentFolderName(flnm)
  On Error Resume Next
  Kill path & "\temp.tmp"
  On Error GoTo 0
  If open_fl(flno1, flnm) = 0 And open_fl(flno2, path & "\temp.tmp") = 0 Then
    If get_fl(flno1, bt()) = 0 Then
     jdx = 0
     For idx = LBound(bt()) To UBound(bt())
       If bt(idx) <> &HD Then
        ReDim Preserve bta(jdx)
        bta(jdx) = bt(idx)
        jdx = jdx + 1
        End If
       Next
     If put_fl(flno2, bta()) <> 0 Then Stop
     Call cls_fl(flno1)
     Call cls_fl(flno2)
     Kill flnm
     Name path & "\temp.tmp" As flnm
     End If
    Call cls_fl(flno1)
    Call cls_fl(flno2)
    End If
End Sub
'====================================================
Function open_fl(flno As Long, flnm) As Long
  On Error Resume Next
  flno = FreeFile()
  Open flnm For Binary As #flno
  open_fl = Err.Number
  On Error GoTo 0
End Function
'====================================================
Sub cls_fl(flno As Long)
  On Error Resume Next
  Close #flno
  On Error GoTo 0
End Sub
'=======================================================
Function get_fl(ByVal flno As Long, bt() As Byte) As Long
  On Error Resume Next
  ReDim bt(LOF(flno) - 1)
  Get #flno, , bt()
  get_fl = Err.Number
  On Error GoTo 0
End Function
'=======================================================
Function put_fl(flno As Long, bt() As Byte) As Long
  On Error Resume Next
  Put #flno, , bt()
  put_fl = Err.Number
  On Error GoTo 0
End Function

のmainを実行してみて下さい。上記のようになりました。

ちなみに、ヘキサダンプは以下のコードで確認しました。
'=================================================
Sub disp_fl_dump()
  Cells(1, 1).Value = dump()
End Sub
'=================================================
Function dump() As String
  Dim buf As String
  Dim bt() As Byte
  Dim flno As Long
  Dim flnm
  flnm = Application.GetOpenFilename()
  If flnm <> False Then
    If open_fl(flno, flnm) = 0 Then
     If get_fl(flno, bt()) = 0 Then
       dump = ""
       For idx = LBound(bt()) To UBound(bt())
        dump = dump & Hex(bt(idx))
        Next idx
       End If
     Call cls_fl(flno)
     End If
    End If
End Function

0 hits

【7690】カンマ区切りのCSVで保存した時の改行を削除したいのですが。。。 でこぽんウマイ! 03/9/11(木) 21:49 質問
【7706】Re:カンマ区切りのCSVで保存した時の改行を... Jaka 03/9/12(金) 14:11 回答
【7879】Re:カンマ区切りのCSVで保存した時の改行を... でこポンうまい!! 03/9/21(日) 23:41 質問
【7889】Re:カンマ区切りのCSVで保存した時の改行を... Jaka 03/9/22(月) 13:48 回答
【7891】Re:カンマ区切りのCSVで保存した時の改行を... BOTTA 03/9/22(月) 16:38 回答
【7901】Re:カンマ区切りのCSVで保存した時の改行を... ichinose 03/9/22(月) 23:46 回答
【8311】Re:カンマ区切りのCSVで保存した時の改行... でこぽんウマイ! 03/10/8(水) 11:25 発言
【8494】Re:カンマ区切りのCSVで保存した時の改行... でこぽんウマイ! 03/10/20(月) 14:29 お礼
【7904】Re:カンマ区切りのCSVで保存した時の改行を... Hirofumi 03/9/23(火) 8:58 発言
【8242】Re:カンマ区切りのCSVで保存した時の改行... でこポンうまい!! 03/10/6(月) 1:21 質問
【8324】Re:カンマ区切りのCSVで保存した時の改行... Hirofumi 03/10/8(水) 20:56 回答
【8326】Re:カンマ区切りのCSVで保存した時の改行... Hirofumi 03/10/8(水) 21:26 発言

73311 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free