- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ABookとBBookの同一セルが値か式かを比較)
VBAでの値と数式の比較でエラーが発生する原因と対処方法
このQ&Aのポイント
- WindowsXPSP3EXCEL2007VBAを使用して、マクロでABookとBBookの同一番地のセルの書式(値と式)を比較し、違いがある場合にBBookのセルの色を変える処理を作成しました。しかし、実行時にエラーが発生して途中で止まってしまいます。
- エラーが発生する原因としては、ws2とws3の定義が正しくされていないことが考えられます。ws2とws3はWorkbooks(bookname2)から取得されるべきですが、現在のコードでは明示的な定義が行われていません。
- 解決策としては、ws2とws3を明示的に定義することでエラーを解消することができます。具体的には、ws2 = Workbooks(bookname2).Worksheets("明細")とws3 = Workbooks(bookname2).Worksheets("エラーセル")のように定義してください。また、エラー発生時にデバッグ情報を出力することで、問題をより具体的に特定することができます。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
実例が作りにくいので回答者側はやりにくい。自分で別途簡単な模擬実例でも作ってやってみて、原因個所を特定し それを挙げて質問すべきだ。 参考にならないかもしれないが ーー SpecialCells(xlCellTypeFormulas, xlLogical は使ったことが無いが、 http://moug.net/tech/exvba/0050114.html の後半にマニュアル的説明がある。 質問者はxlLogicalを使うことに自信あるのか? ●この行でどういうことがしたいか、文章で表現してみてください。 コードばかり書いて読者に行数の多いコードを読み解かすのは、時間を掛けさされるわけで配慮が足りないと思う。 ーー 質問では>ABookとBBookの同一番地の・・となっているが、同一ブックの別シートの比較のコードになってませんか <--Set ws2 = Workbooks(bookname2).Worksheets("明細") Set ws3 = Workbooks(bookname2).Worksheets("エラーセル") ーーー >Debug.Print b; の最後の;って必要? わたしが質問のコードを少し自分流にして実行してみたが、 a = ws2.Cellsx,y).SpecialC・・・の所で止まりますね。 ほんとにxlLogicalを使っているところはありそうですか? 上記WEB記事の >論理値が入力されているセルだけが対象になります。 数式の結果が論理値になっているセルは該当しません。 を参考に。
お礼
ほんとに皆さん有難う御座います。いまだ解決には至りませんが、参考にさせて頂きます。本当に有難う御座います。