■ 現在のこのページの役立ち度:
表示されない場合こちらのリンクからもご覧になれます。
■ このページの役立ち度を評価する:
役立ち度を評価してください。
(1(左):あまり役立たない - 5(右):大変役立った):
■ ページの共有:
[ サイト内検索 ]
カスタム検索
#37184-0
Excelシートから条件に合ったデータのみを抽出する方法
VBでExcel内の全レコードをループさせる処理をしているのですが、処理時間の関係上
ループさせるExcelのデータを制限したいのです。
条件にあったデータのみをExcelから抽出する方法はあるのでしょうか????
SQLによる抽出はExcelでは出来ないようなので、方法がありましたら教えてください。
お願いします。
#37276-0
RE#37184:Excelシートから条件に合ったデータのみを抽出する方法
> VBでExcel内の全レコードをループさせる処理をしているのですが、処理時間の関係上
> ループさせるExcelのデータを制限したいのです。
> 条件にあったデータのみをExcelから抽出する方法はあるのでしょうか????
> SQLによる抽出はExcelでは出来ないようなので、方法がありましたら教えてください。
> お願いします。

オートフィルタをかけるとか、
Excel ファイルをデータベースプロバイダにして、SQL でデータを取得するとか。

どのような処理なのか分からないので、詳しくはかけません。(^_^;)
#どんな処理をしていて、どんな条件にしたいのか?
 あまり、今のコードを変えたくなければ、そのコードを投稿してもらえば、
 スピードアップのポイントなども見つかると思います。(^_^)
#37299-0
RE#37276:Excelシートから条件に合ったデータのみを抽出する方法
藤代千尋さん、ありがとうございました。
私が行っている処理なのですが、Excelデータ(15000レコード)から必要データを抽出
し、textファイルに保存するものです。
必要データは全Excelデータの10%ほどしか存在せず、他のデータに関しては、今回の処理
において無視できます。必要データの検索は、Excelのあるカラムの情報を参照(Do...Untilで
全てのレコードを見る)しているのですが、90%のレコードにおいてはループする必要もないレコ
ードなのです。処理速度を向上させるために、ループを行う前にレコードを絞っておきたいのですが。
データベースプロバイダに関して、ぜんぜん知識がないのですが、どういったものなのでしょうか??
ご指導、お願いします。


> > VBでExcel内の全レコードをループさせる処理をしているのですが、処理時間の関係上
> > ループさせるExcelのデータを制限したいのです。
> > 条件にあったデータのみをExcelから抽出する方法はあるのでしょうか????
> > SQLによる抽出はExcelでは出来ないようなので、方法がありましたら教えてください。
> > お願いします。
> 
> オートフィルタをかけるとか、
> Excel ファイルをデータベースプロバイダにして、SQL でデータを取得するとか。
> 
> どのような処理なのか分からないので、詳しくはかけません。(^_^;)
> #どんな処理をしていて、どんな条件にしたいのか?
>  あまり、今のコードを変えたくなければ、そのコードを投稿してもらえば、
>  スピードアップのポイントなども見つかると思います。(^_^)
#37373-0
RE#37299:Excelシートから条件に合ったデータのみを抽出する方法
> 私が行っている処理なのですが、Excelデータ(15000レコード)から必要データを抽出
> し、textファイルに保存するものです。
> 必要データは全Excelデータの10%ほどしか存在せず、他のデータに関しては、今回の処理
> において無視できます。必要データの検索は、Excelのあるカラムの情報を参照(Do...Untilで
> 全てのレコードを見る)しているのですが、90%のレコードにおいてはループする必要もないレコ
> ードなのです。処理速度を向上させるために、ループを行う前にレコードを絞っておきたいのですが。
> データベースプロバイダに関して、ぜんぜん知識がないのですが、どういったものなのでしょうか??

15,000 レコードだと、Excel では荷が重い気がしますが、出来な
い量でもないですね。(^_^;) 

Excel をデータベースとして扱う方は、慣れないと難しいので、オ
ートフィルタの方で実用スピードが出ないか試してみてください。
私の方で、5,000 行の Excel ファイルにオートフィルタをかけて
みたら 2・3 秒で終わりました。試してみて、スピードが良ければ、
マクロの自動記録を使って、オートフィルタのコードからの使い方
を調べて実装してください。(^_^)/
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
データベースを VB から利用するとき、どの種類のデータベースか、
実際に使うのはどのデータベースかを指定する必要があります。そ
れをすれば、その中の各種表を利用できます。(^_^)

この「どの種類」の部分がデータベースプロバイダとなります。
プロバイダという名前から気づくと思いますが、これは、データベ
ースへのアクセス機能を提供します。

VB からデータベースを使うとき、ADO オブジェクトを使うことに
なりますが、その接続指定のプロバイダと言うところに Excel が
指定できるので、Excel をデータベースと同じように使えます。

ADO の使い方が分からなければ、それを理解する方が先になります
ね。(^_^) ヘルプにも載っているので調べてみてください。
#私は ADO は使ったことないので、説明できません。(;_;)
 普段は、Oracle 直付けのデータベースでやっているので。
このページと関連する記事:
#9905-0レコードセットのクリアの仕方2000-04-25(火) 11:57
#565-0FETCHをループで使うには?2001-08-29(水) 11:18
#12646-0たくさんのレコードの表示をするには?2000-01-05(水) 15:00
#21732-0大雑把すぎてすみません2002-07-25(木) 13:52
#30232-0ソートについて2000-09-19(火) 16:12
#9360-0Access2000とVB6.0の関係について2000-07-03(月) 23:28
#24055-0oo4oでオラクルデータをCSVに吐き出す2001-10-26(金) 00:58
#892-0効率のよい(時間のかからない)抽出方法について2001-10-24(水) 12:00
#21123-0表の入れ方がわからない。2001-05-30(水) 10:24
#1102-0ん万件のデータ検索2000-10-07(土) 11:24
お探しの情報は見つかりましたか?お困りの問題は解決しましたか?
サイト内検索, 似た記事検索で見つからなくてもあきらめずに掲示板で質問してみましょう。
VB初心者友の会があなたのお役に立てれば幸いです。また、本ページの投稿者の方々にこの場を借りて感謝致します。
本ページは過去ログを集めて自動構成しています。よろしければこのページに関するフィードバックをお願いします。
(※ 構成の誤り、広告等の不適切な記事、リンク切れ、読めないページの報告など)