[リストへもどる]
一括表示

投稿時間:2003/08/21(Thu) 16:24
投稿者名:doc
Eメール:
URL :
タイトル:
フィルター選択行数の取得
はじめまして、docと言います。VBでExcelを操作するプログラムを組んでいるのですが
フィルターで詰まっています。30000行ほどのデータを使用し、特定の列について
フィルターの重複削除処理を行っています。このとき、左下に「○○○レコード中
△△△個が見つかりました」という表示が出るのですが、この「△△△」の数字は
どのようにしたら取得できるのしょうか?どなたかご存知の方がいましたら教えてください、
よろしくお願いします。

投稿時間:2003/08/21(Thu) 20:26
投稿者名:neptune
Eメール:
URL :
タイトル:
Re: フィルター選択行数の取得
初めまして

質問中なのにResの付かないneputuneと言います。

どうもHelpに書いているようにExcelが管理している時は取得で出来ないような気がします。
出来たらごめんです。

そこで力業になりますが、
レコード数は(1列目はFeild名とする)
lngTL= Cells(1, 1).CurrentRegion.Rows.Count - 1

抽出数は
Subtotalワークシート関数を使えばどうでしょう?
Helpより
リストを抽出した結果として非表示になっている行は無視されます。このため、抽出されたリストに表示されているデータだけを集計することができます。

Subtotalワークシート関数の例(列 1 の抽出されている数を取得)
1列目はFeild名とする
lngFilterTL= Application.WorksheetFunction.Subtotal(3, Columns(1)) - 1

上記の例はExcelでTestしたのでVB用に書き換えてください。

別方法としてはDAOなり、ADOなりのDBオブジェクト使用する方法もありますね。

少し下のほうになりましたが私も「検索を早くしたい」というTitleで質問してます。
お判りになるようなら宜しくお願いします。

投稿時間:2003/08/22(Fri) 12:12
投稿者名:doc
Eメール:
URL :
タイトル:
Re^2: フィルター選択行数の取得
できました!、neptuneさんありがとうございました。
「Cells(1, 1).CurrentRegion.Rows.Count - 1」と
「Subtotal」で両方とも取れました。
本当にありがとうございました。

それと、申し訳ありませんが、neptuneさんの質問に
お答えできるほどのスキルは持っていません。
助けていただいたのに、何のお役にも立てずにすみません。