Excel VBA質問箱 IV

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

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


31216 / 76732 ←次へ | 前へ→

【50768】Re:CSV→Excel(折り返し無し)変換
発言  Hirofumi  - 07/8/14(火) 20:58 -

引用なし
パスワード
   後もう1つ思い出した
もし、読み込むCSVがユニックス系の改行コードがLfの場合
Openステートメントで読み込もうとすると、全てのデータを変数に読み込んでしまう為
上手く行きません(Openステートメントでは、改行コードは、CrLf、Crだけ)
この場合、FSOを使って「Sub CSVRead」を以下の様にします


Private Sub CSVRead(ByVal strFileName As String, _
          ByRef rngWrite As Range, _
          Optional ByRef lngRow As Long = 1, _
          Optional strDelim As String = ",")

  Const ForReading = 1
  
  Dim vntField As Variant
  Dim strBuff As String
  Dim blnMulti As Boolean
  Dim strRec As String
  Dim objFso As Object
  Dim objFileStr As Object

  'FSOのオブジェクトを取得
  Set objFso = CreateObject("Scripting.FileSystemObject")
  '指定ファイルを読み込みモードでOpen
  Set objFileStr = objFso.OpenTextFile(strFileName, ForReading)
  
  With objFileStr
    Do Until .AtEndOfStream
      'ファイルから1行読み込み
      strBuff = .ReadLine
      '論理レコードに物理レコードを追加
      strRec = strRec & strBuff
      '論理レコードをフィールドに分割
      vntField = SplitCsv(strRec, strDelim, , , blnMulti)
      'フィールド内で改行が有る場合
      If Not blnMulti Then
        With rngWrite.Offset(lngRow)
          With .Resize(, UBound(vntField) + 1)
            '出力範囲を文字列に設定
'            .NumberFormat = "@"
            'データを出力
            .Value = vntField
          End With
        End With
        '出力行をインクリメント
        lngRow = lngRow + 1
        strRec = ""
      Else
        '改行が有った場合、単純に連結する時はElse節を削除
        'セル内改行として残す場合
        strRec = strRec & vbLf
      End If
    Loop
    .Close
  End With
  
  Set objFileStr = Nothing
  Set objFso = Nothing
  
End Sub
0 hits

【50762】CSV→Excel(折り返し無し)変換 りった 07/8/14(火) 18:41 質問
【50763】Re:CSV→Excel(折り返し無し)変換 かみちゃん 07/8/14(火) 19:10 発言
【50764】Re:CSV→Excel(折り返し無し)変換 Hirofumi 07/8/14(火) 19:20 発言
【50765】Re:CSV→Excel(折り返し無し)変換 りった 07/8/14(火) 19:50 お礼
【50766】Re:CSV→Excel(折り返し無し)変換 Hirofumi 07/8/14(火) 20:05 発言
【50767】Re:CSV→Excel(折り返し無し)変換 Hirofumi 07/8/14(火) 20:22 発言
【50768】Re:CSV→Excel(折り返し無し)変換 Hirofumi 07/8/14(火) 20:58 発言
【50769】Re:CSV→Excel(折り返し無し)変換 りった 07/8/14(火) 21:35 質問
【50789】Re:CSV→Excel(折り返し無し)変換 Hirofumi 07/8/15(水) 20:12 回答
【50790】Re:CSV→Excel(折り返し無し)変換 Hirofumi 07/8/15(水) 20:49 発言
【50920】Re:CSV→Excel(折り返し無し)変換 りった 07/8/22(水) 13:15 お礼

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