
お世話になっています。いつも助けてもらってありがとうございます。今,仕事関連で使う
ものを作っています。順調にすすんでいましたが,find でエラーがでます。
findを使った自作の関数を使っていますが,一つ一つ動作を確認しながら,積み上げてます。
そんななか,ある行(この行も今まで使っていた問題の無い行)を付け加えると,次のよう
なエラーがでるようにります。
実行時エラー’-2147417848’(80010108)
Findメソッドは失敗しました。:’Rangeオブジェクト’
このエラーがでると,VBAの実行を中止し,通常のエクセルに戻ると,セルを選択しても
アクティブセルの表示がされなくなります。こうなると,エクセルを再起動しないとなお
りません。
ネットで調べても,このエラーは該当しませんでした。このエラーの意味を教えていただけ
るとありがたいです。よろしくお願いします。
No.3ベストアンサー
- 回答日時:
こんにちは
>find でエラーがでます
FIND文を含む1行を加えただけなのでしょうか?
(それだけでは、処理はほとんど変わらないと思いますが・・)
それとも「自作の関数」を追加している?
(両者には大きな違いがあります)
いずれにしろ、何をどうなさっているのかの情報もなく「エラーが出る」ことしかわからないので、何とも手掛かりがなさすぎる状態ですが・・・
もしも本当にFINDメソッドが原因なら、通常は「該当するセルが見つからない」時にエラーが発生します。
ただし、この場合は
実行時エラー’91’
になりますね。
一方で、ご提示の
実行時エラー’-2147417848’(80010108)
について検索してみると、いろいろと情報が見つかります。
きっかけとなる原因はいろいろのようですが、エクセルがハングアップするという事象も共通しているようです。
これらから推測すると、どうやら内部でメモリ不足になっているのが原因のようですが(←勝手な推測です)、質問者様の実行コードの構成で同様のことが起きていたりしませんか?
ありがちなのは
・イベント処理等でループしてしまっていてスタックを使っている
・再帰処理等で、メモリを解放せずに大量のデータを積み重ねている
・ループなどで上記同様の処理を行っている
などをチェックしてみるのが宜しそうに思います。
※ 情報が全くないため当たるも八卦の回答になっていますので、全くの見当違いかもしれませんけれど・・・
早速のアドバイスありがとうございます。
Findはサブで使っています,このサブでは,検索対象が
見つからないときは,”XFD1048576”(最終行列)を
返すように,自分なりのエラー処理はしてるかと思います。
このエラーの表示の出る前の操作で,スタックス関連のエラー
等もでましたので,
・イベント処理等でループしてしまっていてスタックを使っている
・再帰処理等で、メモリを解放せずに大量のデータを積み重ねている
等が原因かと納得しました。知らず知らずのうちに,ループ
を作ってるのかなと思います。
もう一度精査してみたいと思います。
ありがとうございます。
No.4
- 回答日時:
自作の関数って、もしかして、セル上の数式から呼び出してますか?
もしそうなら、諦めるしかなさそうですが・・・
https://support.microsoft.com/ja-jp/topic/excel- …
No.2
- 回答日時:
お答えしようと思いましたが、具体的な環境が書いてないので、これだけではなんとも回答ができません。
そこでchatGPTに聞いてみました。
VBAでわからないこと、どうやって組んだらいいかわからないことはchatGPTに聞くと答えてくれます(正解とは限りませんが)
以下はchatGPTの回答です。
エラーコード -2147417848 は通常、VBAの実行中にオブジェクトが予期せず破棄されたり、使用されないメモリ領域を参照しようとしたりする場合に発生します。Find メソッドに関連するエラーとなります。
エラーが発生する具体的なコードが提供されていないため、原因を特定するのは難しいですが、いくつかの一般的な原因と対処法を挙げてみます。以下の点を確認してみてください:
Find メソッドの使用: Find メソッドを使用している部分のコードを確認し、対象の Range オブジェクトが正しく設定されていることを確認してください。また、Find メソッドが何かしらの条件を満たす可能性があるか確認してください。
オブジェクトの設定と解放: オブジェクトの設定後、十分に使用し終わったら Set ステートメントを使用してオブジェクトを解放してください。オブジェクトが不要な場合は、可能な限り早く Set を使って解放しましょう。
vba
Copy code
Set myRange = Worksheets("Sheet1").Range("A1:B10")
' 何かしらの処理
Set myRange = Nothing ' オブジェクトを解放
エラーが発生する行の前後を確認: エラーが発生する行の前後に、新しく追加した行と関連する行があれば、その部分を確認してみてください。どうやらエラーが関連する行にあるようです。
デバッグツールを使用: コードの実行中にデバッグツールを使用して、どの行でエラーが発生しているのかを特定しましょう。Debug.Print ステートメントや MsgBox を挿入して変数の値を確認することができます。
vba
Copy code
Debug.Print "Here"
MsgBox "Check this point"
これらの対応策で問題が解決しない場合、追加の情報やコードの一部を提供いただければ、より具体的なサポートが可能です。
早速のアドバイス,並びにChatGTPの回答ありがとうございます。
VBAの実行中にオブジェクトが予期せず破棄されたり、使用されないメモリ領域を参照しようとしたりする場合に発生します。Find メソッドに関連するエラーとなります。
これあたりが,エラーになる原因かなと思います。全体を見直したり,自作のSUBを見直したりしてみたいと思います。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Rangeメソッドは失敗しました。globalオブジェクトについて 6 2021/11/21 21:54
- Visual Basic(VBA) Excel VBAでWordの複数ファイルを統合する場合のエラーについて教えてください 11 2021/12/29 12:11
- Visual Basic(VBA) ExcelVBAでのエラー回避 1 2022/02/02 17:39
- Chrome(クローム) Chrome で教えて! goo だけが時々エラーになる 5 2021/11/30 16:26
- Visual Basic(VBA) オブジェクトが見つかりません 1 2023/06/24 19:43
- Visual Basic(VBA) Excle VBA Findメソッドについて 3 2022/07/15 13:56
- その他(Microsoft Office) 【Excel】エラー解消をお願いします…。 1 2021/12/21 17:51
- Visual Basic(VBA) Selenium のエラーがでます。 2 2021/12/03 12:56
- フリーソフト エクセルだけで宛名を印刷できるフリーソフトありませんか? 7 2021/12/06 11:53
- FX・外国為替取引 MQL5にて謎のエラーが発生!だれか対処を教えてください! 1 2023/03/25 15:59
このQ&Aを見た人はこんなQ&Aも見ています
-
Excle VBA Findメソッドについて
Visual Basic(VBA)
-
VBA 実行時エラー1004 rangeメソッドは失敗しました。globalオブジェクトのエラー
Excel(エクセル)
-
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
-
4
VBAのFind関数で結合セルを検索するとヒットしない
Visual Basic(VBA)
-
5
Excel VBAマクロで実行時エラー'91'が出てしまいます。
Excel(エクセル)
-
6
実行時エラー -'-2147417848
Excel(エクセル)
-
7
特定のPCだけ動作しないVBAマクロがあります。その理由は?
Visual Basic(VBA)
-
8
findメソッドの変数について
Visual Basic(VBA)
-
9
特定の文字を含むシートだけマクロ処理をしたい
Visual Basic(VBA)
-
10
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
11
VBA 存在しないシートを選択した時にエラーメッセージを表示するには?
Visual Basic(VBA)
-
12
ExcelのVBAでGoToの代わりに…
Excel(エクセル)
-
13
Excelの入力規則で2列表示したい
Excel(エクセル)
-
14
VBA:結合されたセルに対する「Target」について
Access(アクセス)
-
15
VBAでの結合セルのコピー&ペースト
Excel(エクセル)
-
16
Excel-VBAでInputBox+Pulldownは可能??
Visual Basic(VBA)
-
17
VBAでループ内で使う変数名を可変にできないか。
Visual Basic(VBA)
-
18
VBAでEmpty値って何ですか?
Excel(エクセル)
-
19
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
20
ExcelのVBAでフォームが表示されない
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
お助けください!VBAのファイル...
-
VBAでfunctionを利用しようとし...
-
UserForm1.Showでエラーになり...
-
「実行時エラー '3167' レコー...
-
【VBA】ワークブックを開く時に...
-
マクロで"#N/A"のエラー行を削...
-
SQLでエラーです。
-
String""から型'Double'への変...
-
エクセル関数式=ABSで#VALUE!...
-
インポート時のエラー「データ...
-
実行時エラー'-2147467259(8000...
-
ACCESSで値を代入できないとは?
-
IISの仮想ディレクトリ作成がわ...
-
マクロOn Error GoTo ErrLabel...
-
VBAで、Excelの選択範囲をWeb形...
-
ADO 「認証に失敗しました」
-
文字列内で括弧を使うには
-
ACCESS97 実行時エラー '2455'...
-
VBA エクセル で FIND でのエラ...
-
存在しないアドレスへ送信した...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
マクロOn Error GoTo ErrLabel...
-
UserForm1.Showでエラーになり...
-
お助けください!VBAのファイル...
-
VBAでfunctionを利用しようとし...
-
【VBA】ワークブックを開く時に...
-
String""から型'Double'への変...
-
文字列内で括弧を使うには
-
マクロで"#N/A"のエラー行を削...
-
Excel vbaについての質問
-
VBA データ(特定値)のある最...
-
On ErrorでエラーNoが0
-
インポート時のエラー「データ...
-
【VBAエラー】Nextに対するFor...
-
ACCESSで値を代入できないとは?
-
【Access】Excelインポート時に...
-
VBでSQL文のUPDATE構文を使った...
-
【VB.NET】 パワポ操作を非表示で
-
「実行時エラー '3167' レコー...
-
実行時エラー 438 の解決策をお...
-
実行時エラー'-2147467259(8000...
おすすめ情報