- みんなの回答 (3)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
一番文字数・行数の少ないコードを目指して. Split後の繰り回しなし、が売り。 標準モジュールに Sub test01() i = 2 '開始行 '--フルパス指定のこと Open "C:\Users\xxx\ドキュメント\Documents\csvデータ例.csv" For Input As #1 While Not EOF(1) Line Input #1, s Range("A" & i & ":D" & i) = Split(s, ",") '4列データの場合の例 i = i + 2 '1行おきの場合の例 Wend Close #1 End Sub
- SI299792
- ベストアンサー率47% (780/1631)
>読み込むcsvファイルを選択出来るようにするには 回答者にとって、どっちがいいのか判りません(ファイルが決まっているなら、選択できない方がいい) 今後、最初に書いていただけますか。(責めているのではありません、質問者さんも、書かないと伝わらないと判らなかったと思うので) ' Option Explicit ' Sub Macro1() ' Dim Row As Long Dim Col As Integer Dim File As Variant ' File = Application.GetOpenFilename("csv ファイルを選択,*.csv") If File = False Then End End If ' Open File For Input As #1 While Not EOF(1) Row = Row + 2 Line Input #1, File File = Split(File, ",") ' For Col = 0 To UBound(File) Cells(Row, Col + 1) = File(Col) Next Col Wend Close End Sub
- SI299792
- ベストアンサー率47% (780/1631)
1行おきの取り込めばいいのですね。 ANSI専用です。(ファイル、名前を付けて保存で出てきます)。他のコートの場合、補足に書いて下さい。 ' Option Explicit ' Sub Macro1() ' Dim Row As Long Dim Col As Integer Dim FileData As Variant ' Open "D:\Test\Data.csv" For Input As #1 ' While Not EOF(1) Row = Row + 2 Line Input #1, FileData FileData = Split(FileData, ",") ' For Col = 0 To UBound(FileData) Cells(Row, Col + 1) = FileData(Col) Next Col Wend Close End Sub
補足
ご回答ありがとうございます! csvの読み込みは出来ました。 csvを読み込む際に、読み込むcsvファイルを選択出来るようにするには、どのような修正が必要でしょうか。。。