投稿日 | : 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
ここの部分です。
以上、宜しくお願い致します。