Excel VBA質問箱 IV

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

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


39990 / 76738 ←次へ | 前へ→

【41852】csvファイルにて
質問  質問(煮詰まった)  - 06/8/24(木) 10:12 -

引用なし
パスワード
   1点教えて下さい。
csvファイルの変換の処理です。

csvのファイルをxls形式に変換しています。

"AAAA,BBBB",2,3, のようなケースで""を除いて
,(カンマ)の箇所まで1項目として処理しているのですが
項目中の,の場合にうまく変換できません。
対応方法を教えて下さい。

以下の変換はWebで検索してそのまま利用している処理になります。
シングルコーテーション、ダブルコーテーションで囲まれている場合は両端文字を取り除く処理で,も条件にいれてみたのですがうまく行かなくなった
ので教えて下さい。

最悪、項目中のカンマは別の文字に置き換えてもかまわないのですが・・


' FreeFile値の取得(以降この値で入出力する)
  intFF = FreeFile
  ' 指定ファイルをOPEN(入力モード)
  Open strFILENAME For Input As #intFF
  GYO = 1
  ' ファイルのEOF(End of File)まで繰り返す
  Do Until EOF(intFF)
    ' レコード件数カウンタの加算
    lngREC = lngREC + 1
    xlAPP.StatusBar = "読み込み中です....(" & lngREC & "レコード目)"
    ' 行単位にレコードを読み込む
    Line Input #intFF, strREC                   ' 1.

    ' LineInputより自分で半角カンマを探しCSV→項目分割させる
    POS1 = 1
    IX1 = 0
    ReDim X(IX1)        ' 配列を初期化
    Do While POS1 <= Len(strREC)                  ' 2.
      POS2 = InStr(POS1, strREC, ",", vbTextCompare)       ' 3.
      If POS2 < POS1 Then
        POS2 = Len(strREC) + 1
      End If
      ReDim Preserve X(IX1)  ' 配列要素数を再設定
      X(IX1) = Trim$(Mid$(strREC, POS1, POS2 - POS1))      ' 4.
      ' シングルコーテーション、ダブルコーテーションで囲まれている場合は
      ' 両端文字を取り除く
      If (((Left$(X(IX1), 1) = """") And (Right$(X(IX1), 1) = """")) Or _
        ((Left$(X(IX1), 1) = "'") And (Right$(X(IX1), 1) = "'"))) Then ' 5.
        X(IX1) = Trim$(Mid$(X(IX1), 2, Len(X(IX1)) - 2))
      End If
      POS1 = POS2 + 1
      IX1 = IX1 + 1
    Loop

    ' 行を加算しレコード内容を表示(先頭は2行目)
    GYO = GYO + 1
    If IX1 >= 1 Then
      Range(Cells(GYO, 1), Cells(GYO, IX1)).Value = X  ' 配列渡し 6.
    End If
  Loop
  ' 指定ファイルをCLOSE
  Close #intFF
  xlAPP.StatusBar = False
  ' 終了の表示
  MsgBox "ファイル読み込みが完了しました。" & vbCr & _
    "レコード件数=" & lngREC & "件", vbInformation, cnsTITLE
0 hits

【41852】csvファイルにて 質問(煮詰まった) 06/8/24(木) 10:12 質問
【41853】Re:csvファイルにて Jaka 06/8/24(木) 10:35 発言
【41872】Re:csvファイルにて Hirofumi 06/8/24(木) 19:08 回答
【41893】Re:csvファイルにて 質問(煮詰まった) 06/8/25(金) 11:30 お礼
【42112】Re:csvファイルにて 質問(煮詰まった) 06/9/1(金) 13:28 質問
【42120】Re:csvファイルにて Hirofumi 06/9/1(金) 19:56 回答
【42204】Re:csvファイルにて 質問(煮詰まった) 06/9/4(月) 10:10 お礼
【42118】Re:csvファイルにて りん 06/9/1(金) 15:37 回答

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