- 締切済み
CSVファイルの指定列だけを読み込んでEXCELに表示したい
imogasiの回答
- imogasi
- ベストアンサー率27% (4737/17068)
テストデータとして下記を作りました。 ファイル名をaa1.csvで保存しました。 5,大島,大阪,商業,a1 23,古河,豊橋,商業,b1 34,恩田,岐阜,普通,d1 45,寒川,福島,国際,c1 67,桐井,新潟,工業,c2 13,青井,久留米,普通,a2 そしてVBEのModule1に Sub test01() i = 1 Open "aa1.csv" For Input As #1 While Not EOF(1) Input #1, a, b, c, d, e ' MsgBox a & "," & b & "," & c & "," & d & "," & e Worksheets("sheet1").Cells(i, 1) = b Worksheets("sheet1").Cells(i, 2) = d i = i + 1 Wend Close #1 End Sub テスト済み。項目数(フィールド数)だけa,b,c,・・・を設定してください。そして何番目の項目かを選んでください。このテストでは2、4番の2つを選択した。 その項目数だけWorksheets("sheet1").Cells(i, xx) = xを増やしてください。xxはA列を1としてB列を2とする列順序数です。xは取り出してシート列にセットする変数名(項目データ)です。
関連するQ&A
- 先頭にゼロを含む数字列のcsvをExcelに取込む
UTF-8のCSVファイルがあり、含まれるデータに先頭がゼロで始まる数字列があります(例えば00123や0123で桁数は不定)。 これをVBAを使ってExcelに取り込み、ゼロ付きのまま扱いたいのですが、取り込んだデータは先頭のゼロが欠けてしまいます。 VBAコードは以下のとおりです。 どこを見直したらよろしいでしょうか。 strConnPhrase = "TEXT;" & strFilePath Set qt = ws.QueryTables.Add(Connection:=strConnPhrase, Destination:=ws.Range("A1")) With qt .TextFilePlatform = 65001 .TextFileParseType = xlDelimited .TextFileCommaDelimiter = True .PreserveFormatting = True .RefreshStyle = xlOverwriteCells .Refresh .Delete End With
- ベストアンサー
- Excel(エクセル)
- EXCELで複数のファイルを同じブック内で開きたい
久しぶりにVBAを使用してやらせたいことがありますので、質問です。 複数のCSVファイルがあり、これを同じブック内のシートとして開くことは 出来ますでしょうか。 メニューから開くとして、それぞれのファイルを開くと、別々のブックにて開いてしまいます。 これを同じブックで、シート別に開かせたいのですが、出来ますでしょうか。 さらに、これをVBAでやりたいと考えております。 まず考えたのは、 ”Application.GetOpenFilename”です。 ただし、これを利用すると、別々のブックでしか開くことができませんでした。 次に考えたのが、”QueryTables.Add”を利用することです。 これだと、同一ファイル、同一シート内にデータを取り込むことができるので、 問題ないのですが、ファイル名を指定しなければなりません。 ファイルが変わるたびにVBAでパスを修正するのは大変ですので、 ”QueryTables.Add”のデータ取り込みでファイル選択ダイアログが開くような コードがあればよいと考えております。 ファイル選択のダイアログが開いて、そのファイルのパスが取得できるような コードにすれば、”QueryTables.Add”にてデータの取り込みができそうなのですが、 どうすればよいか思いつきません。 "Dialogs(wdDialogFileFind)"というものも見つけたのですが、うまくいきませんでした。 何か良い方法がありますでしょうか。 よろしくお願いします。 Dialogs(wdDialogFileFind)
- ベストアンサー
- Visual Basic
- excel vbaで複数のcsvファイルの読み込み
100シート分のcsvファイルのデーターを一つずつ読み込んでexcelにコピーして使用してますが莫大な時間がかかって困ってます。 vbaを使用して作業を簡素化出来る事は出来ないでしょうか? ------------------------------------------ ※ csvの概要 excelで1枚のcsvファイルを開くとA列の11行目から65536行まで数値データがあります。 ※ vbaできたらよいなと思う仕様 そこで、複数のcsvファイルを選択して読み込むとCSV_データと言うSeetのA列の10行目から1枚目のcsvファイル、B列の10行目から2枚目のcsvファイルと言う風に選択した分のcsvを列に続けて数値データを貼り付けしてくれるvbaをご教授していただけると大変助かります。 不躾で申し訳ございませんが宜しくお願い致します。 excel2003 ------------------------------------------
- ベストアンサー
- オフィス系ソフト
- CSVファイルの特定列だけを呼び出し
はじめまして。VBA初心者です。 質問させてください。 横に十列、縦に1万レコードのcsvデータがあり、このうちの2列分だけをエクセルシートに取り出すマクロが必要になりました。 外部データ呼び出し後、列を削除、というのを作ってみましたが、僕の力量不足にためか、改変ポイントがよくわかりませんでした。 opentextを使ってarrayで読み込む、というのもやってみましたが、結構時間がかかってスムーズにはいきませんでした。 ネットでさがしているうちに、読み込む列が少ないならcsvから特定の列をコピーして、それを新しいブックに貼り付け、すればいいみたいな記述をみたのですが、参考になるコードが見つかりませんでした。 そういうことは可能なんでしょうか?また、大量のデータを読み込む時に一番早い方法はどんなものでしょうか?
- ベストアンサー
- Visual Basic
- EXCEL- VBA(CSVファイル→インポート)
A列~F列になる複数(100個以上)のCSVファイルをエクセルファイルにインポートして更に個別にエクセルファイルとして保存したいのですが VBAでできるのでしょうか? 記憶マクロでやったらどうにもうまくいきません。 エクセルのVBAについては ほとんど知識ゼロなので困っております。 大変厚かましくありますが どなた様かご教授お願いできたらと思います!! 【元のファイルの状態】 ◆ファイル名「*.CSV」*は文字数それぞれ違います。 <例:tanaka.xls だったり 09福島.xls> ◆入っているドライブ TEXT;C:\Documents and Settings\AA_B\デスクトップ\練習 ◆A~F列にデータが入っている 【やりたいこと】 (1)A~F列はカンマ区切りで全て文字列としたい (2)元のファイル名でエクセルとして保存したい「*.XLS」
- ベストアンサー
- オフィス系ソフト
- エクセルで任意のcsvファイルを指定して関連ずけたい
エクセルでフォームが出来ていて,特定したcsvファイル(ファイル名指定)の指定データ値をフォームに割り当て表示させています.フォームとcsvファイルは別になっています. csvデータファイルのデータの内容はフォームに合わせてあるので考えなくていいのですが,任意のcsvファイルをPCに保存してあり,そのファイルが複数あり選択指定できるようにしたいのですが,お教えいただけないでしょうか.よろしくお願いいたします.
- ベストアンサー
- オフィス系ソフト
- CSVを特定の列だけ抽出してエクセルへ変換したい
図々しい質問で本当に申し訳ありません。当方VBAの初心者というか、ほぼ何もわかっていません。本来ならばきちんと自分で勉強し地道に解決すべきであるのは重々承知しているのですが、どうしても来週必要になるので無礼は承知で質問させていただきます。 20列、長くても200行程のCSVファイルから特定の5列程のデータだけを抜き出し、エクセルに変換し、CSVと同じフォルダに格納したいと思っております。(エクセルのファイル名はCSVと同じで構いません) どのようなコードを書けばよいのか、ネットで似たような質問を拝見し自分なりに調べて書いてみたのですが、全く上手くいきません。 厚かましいお願いで本当に、情けなく、お怒りを買ってしまうかもしれませんが、「このコードをそのまま貼り付けたら動くよ」といった感じでお教えいただけませんでしょうか・・・。 使うバージョンはエクセル2013です。 本当にすみません。 何卒お願いいたいます。
- ベストアンサー
- オフィス系ソフト
- CSVファイルの任意の列をダブルクォーテーションで囲みたいのですが・・・。
CSVファイルの任意の列をダブルクォーテーションで囲みたいのですが・・・。 例えば abc,def,ghi,jkl mno,pqr,stu,vwx ↓ abc,"def",ghi,"jkl" mno,"pqr",stu,"vwx" というように、2番目と4番目の列の文字列をダブルクォーテーションで囲む、といった具合にです。 調べてみるとVBAを使用する方法はあるようですが、EXCELやその他のフリーソフト等を使用して処理する方法はありませんでしょうか。 よろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- 複数の.csvファイルから指定数値を取り出す
お世話になります。 早速質問ですが、Excel VBA環境で あるフォルダ内の複数の.csvファイル一つ一つから 指定数値(B列6行目のみ)を取り出して、 デスクトップ上、別のExcelシートの(B列1行毎に日付と時間が書いてある) 隣のC列にまとめて自動で書いてくれるプログラムがあればいいな と考えているのですが、 可能でしょうか。 値をただ吸い出して、別の新規ファイルにまとめて表示してくれるだけでも 助かります。宜しくお願い申し上げます。
- ベストアンサー
- Excel(エクセル)
- VBでcsvファイルを取り込むときに・・・
困っています。ビジュアルベーシック初心者です。 次のようなcsvデータがあります。 「あいうえお,,かきく,,1あ2い3う,,12.3,,45.6,,78.9 あいうえお,,かきく,,1あ2い3う,,12.3,,45.6,,78.9 あいうえお,,かきく,,1あ2い3う,,12.3,,45.6,,78.9」 ※あいう等はテキスト、123等は数値(小数) これをエクセルに表示するため、 With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & (ファイル名), Destination:=Range("B3")) .TextFileCommaDelimiter =True .Refresh BackgroundQuery =False End With とプログラムしました。 ところが、エクセルをみると全てのデータの間に1マスづつ余計なセル(空白)が入ります。 空白が入らない取り込み方はあるでしょうか? なお、一度別な場所に取り込み必要なセルだけ転記するというのは避けたいです。 アドバイスを宜しくお願いします。
- ベストアンサー
- オフィス系ソフト
お礼
ご解答ありがとうございました。 とても明快でわかりやすいソースとご説明で、よくわかりました。 プログラムするときに参考にさせていただきます。 でも、セルに一つずつ書き込むのでは、処理が遅くなってしまうようなのです。 一気に書き込めればいいのですが・・・