- 締切済み
VBAでのCSV ダウンロードに方法ついて(文字列)
つい最近VBAを勉強し始めた素人ですが、コードの作成にあたり早くも難航しております。VBAにお詳しい方、よろしければ下記内容にてファイルを作成する場合の方法をご教示いただけないでしょうか? CSV…カンマ区切り データ数 46列(A~AT) レコード数 4万件(概算) そのうち、全部のセルにデータが入っているだけではなく、空白のセルもあり。 エクセル…2003 VBAで指定ファイルを開き、CSVファイルをダウンロードしたいのですが その際に7,8列(G,H列)のみを文字列としてダウンロードしたいです。 またファイルを読み込む際はOPEN TEXTなどの別ファイルで開くのではなく、あくまで同ファイルの違うシート内に落としたいと思っております。 一応、拙いながらに途中までは自力でコードを組んでみたのですが。。。 ******************************************************* Sub CSVダウンロード() Const conTitle = "テキストファイルの読み込み処理" Const conFilter = "全てのファイル(*.*),*.*" Dim xlAPP As Application Dim csv As String Dim Freef As Long Dim X(1 To 46) As Variant Dim Gyo As Long Dim rec As Long Set xlAPP = Application xlAPP.StatusBar = "読み込むファイルを選んでください" csv = xlAPP.GetOpenFilename(Filefilter:=conFilter, _ Title:=conTitle) If StrConv(csv, vbUpperCase) = "FALSE" Then Exit Sub Freef = FreeFile Open csv For Input As #Freef Gyo = 1 Do Until EOF(Freef) rec = rec + 1 xlAPP.StatusBar = "読み込みちゅうです。。。(" & rec & "レコード目)" Input #Freef, X(1), X(2), X(3), X(4), X(5), X(6), X(7), X(8), X(9), X(10), X(11), _ X(12), X(13), X(14), X(15), X(16), X(17), X(18), X(19), X(20), X(21), X(22), X(23), _ X(24), X(25), X(26), X(27), X(28), X(29), X(30), X(31), X(32), X(33), X(34), X(35), _ X(36), X(37), X(38), X(39), X(40), X(41), X(42), X(43), X(44), X(45), X(46) Gyo = Gyo + 1 Range(Cells(Gyo, 1), Cells(Gyo, 46)).Value = X Loop Close #Freef xlAPP.StatusBar = False MsgBox "ファイル読み込み終了しました!" & vbCr & _ "レコード件数=" & rec & "件", vbInformation, conTitle End Sub ************************************************** これを実行するとエラーコード62『ファイルにこれ以上データがありません』と表記され、デバックで Input #Freef, X(1), X(2), X(3), X(4), X(5), X(6), X(7), X(8), X(9), X(10), X(11), _ X(12), X(13), X(14), X(15), X(16), X(17), X(18), X(19), X(20), X(21), X(22), X(23), _ X(24), X(25), X(26), X(27), X(28), X(29), X(30), X(31), X(32), X(33), X(34), X(35), _ X(36), X(37), X(38), X(39), X(40), X(41), X(42), X(43), X(44), X(45), X(46) の部分が黄色くなります。また、途中でなぜか列がズレてしまいます。元データを見ると全て綺麗に指定のセルに収まっているのですが。 どのように書き換えるべきか思いつきません。 お手数ですが、宜しくお願いいたします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- Wendy02
- ベストアンサー率57% (3570/6232)
お礼
早々のご回答、ありがとうございました。 ご教示いただきましたコードで試したところ、綺麗に読み込みが出来ました。 区切りはコンマでなくカンマなのでSplitを調整してみたいと思います。 ありがとうございました。