VB6.0用掲示板の過去のログ(No.1)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [過去ログ] [管理用]

投稿日: 2003/01/20(Mon) 16:55
投稿者かず
Eメール
URL
タイトルRe^2: セルの検索を行う

レスが遅れてしまって大変もうしわけありません。
もう少しプログラムの方を詳しく掲載しますと以下になります。

--------------------------------------------------------------------
Sub main()

Dim objExl As Object    'Excelオブジェクト ハンドラ
Dim StrSerial As String     'テキストボックスに値をセット   格納変数

Set objExl = CreateObject("Excel.Application")  'Excel Object を作成
Set Book = objExl.Workbooks.Open("c:\test.xls") 'Excelファイルを開く
Set Sheet = Book.Worksheets(1)
    
    StrSerial = Form1.Text1.Text        'テキストボックスにシリアル番号をセット

'Form1のテキストボックスに入れた値をtest.xlsの中で検索する
    Cells.Select
    Selection.Find(What:=StrSerial, After:=ActiveCell, LookIn:=xlFormulas, _    
        LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _    
        MatchCase:=False).Activate

'行番号と列番号を表示する
    Form1.Text1.Text = "行番号=" & Sheet.Cells.Find(StrSerial).Row & _    
                    "   列番号=" & Sheet.Cells.Find(StrSerial).Column
    
End Sub

-----------------------------------------------------------------------------
最初の投稿のときに書いたのですが、test.xlsの中にヒットする文字列があるとき、
若い行(検索に時間がかからない)の場合は、エラーメッセージはでずに、正常に
処理が動くのですが、
後の行(検索に時間がかかる)の場合は、
「他のアプリケーションが・・・」というエラーメッセージがでます。
ちなみにエクセルファイルの大きさは5MBで行数は6000行です。

エラーになる個所は

    Selection.Find(What:=StrSerial, After:=ActiveCell, LookIn:=xlFormulas, _    
        LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _    
        MatchCase:=False).Activate

ここの部分です。

以上、宜しくお願い致します。


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- Web Forum -