Excel VBA質問箱 IV

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

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


8510 / 13646 ツリー ←次へ | 前へ→

【32852】CSVの取り込みについて 麻衣子 05/12/25(日) 3:03 質問[未読]
【32853】Re:CSVの取り込みについて やっちん 05/12/25(日) 3:59 発言[未読]
【32858】Re:CSVの取り込みについて だるま 05/12/25(日) 12:53 回答[未読]

【32852】CSVの取り込みについて
質問  麻衣子  - 05/12/25(日) 3:03 -

引用なし
パスワード
   はじめて投稿します☆

CSV形式のファイルをエクセルのシートに貼り付けようとしている
のですが、「0」落ちしてしまします・・。

TEXTファイルであれば下記で解決できたのですが・・

Workbooks.OpenText Filename:=Sheets("page1").Cell(7,8).Value, _
  StartRow:=2, DataType:=xlDelimited, Comma:=True, _
  FieldInfo:=Array(Array(1, xlTextFormat))

※1列目をテキスト形式で貼り付け
※※cell(7,8)は該当のTEXTファイルのパスが入力されています。

CSVファイルではやはり無理なのでしょうか?
どなたかお分かりでしたら教えてください!お願いします!!

【32853】Re:CSVの取り込みについて
発言  やっちん  - 05/12/25(日) 3:59 -

引用なし
パスワード
   ▼麻衣子 さん:
参考になるでしょうか。
http://www.moug.net/tech/exvba/0060026.htm

【32858】Re:CSVの取り込みについて
回答  だるま WEB  - 05/12/25(日) 12:53 -

引用なし
パスワード
   こんにちは

0が消えないようにするにはセルの書式を文字列に変えて、そこへ読み込めば良い
です。^d^

なお、下記コードでは読み込む列をすべて文字列にしていますが、あらかじめ分か
っていればその対象列のみを文字列にすることも可能です。

Sub ReadCSV()
  Dim myPath As String
  Dim N As Integer
  Dim D As String
  Dim myVals As Variant
  Dim rngDest As Range
  Dim i As Integer
  
  myPath = ThisWorkbook.Path & "\test.csv"
  N = FreeFile
  
  Open myPath For Input As #N
  Line Input #N, D
  Close #N
  
  myVals = Split(D, ",")
  
  Application.ScreenUpdating = False
  
  Set rngDest = Workbooks.Add.Worksheets(1).Range("A1")
  
  rngDest.Resize(, UBound(myVals) + 1).EntireColumn.NumberFormat = "@"
  
  Open myPath For Input As #N
  
  Do Until EOF(N)
    Line Input #N, D
    myVals = Split(D, ",")
    rngDest.Resize(, UBound(myVals) + 1).Value = myVals
    Set rngDest = rngDest.Offset(1)
  Loop
  
  Close #N
  
  Application.ScreenUpdating = True
  
End Sub

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