ExcelVBAで、広範囲セルの空白チェックをしたいと思います。こんにちはゲストさん。>>解決済みの質問ExcelVBAで、広範囲セルの空白チェックをしたいと思います。ExcelVBAで、広範囲セルの空白チェックをしたいと思います。以下のようなExcelシートがあります。・データ入力可能セル範囲はA11~AF65536全てのデータ範囲を削除するために、以下のコードを作成しました。動きとしては問題ないのですが、データが存在しない場合の処理時間が長くなってしまいます。"データがありません。"データを削除しました。"キャンセルされました。回避方法がわかりません。ご教授お願いいたします。13:35:28通報するQNo.6278742rose1224すぐに回答ほしいです質問者が選んだベストアンサー>二度目以降は、myRangeの行選択が前回までの最大行数を>引き継いでいるようです。何か、情報が不足しているようです。説明しながら書きます。'当面はこれでやってみてください。EndRow)の行全体までで重なる部分を削除しろ。」という命令ですが、実際、こちら側では、UsedRangeの範囲がはっきりみえていません。その通常書き込むデータ範囲以外のところに文字や数字などのデータがあると思います。ActiveSheet.UsedRange.Selectで、最終データ位置を確認したほうがよいです。不要なら、それらの文字や情報などは削除したほうがよいと思います。ファイルの肥大化の原因になります。なければ、修正したほうをお使いください。専門的な説明をさせていただきますが、Rows("11:65536").Deleteこのコマンドを使わないのは、Excelというのは、最大行が、65536行(Excel2003まで)あるとすると、データのある範囲までは、ファイルが存在するということです。それ以降は理論行・理論列で実際には存在しません。実際は、最終行・最終列の四角の範囲がファイルのサイズになります。マクロの時は、必ず、最終行・最終列まで行きますが、存在していない所でも、論理的な処理をしてしまいます。'ただし、再計算関数になってしまいます。"=COUNTA(INDIRECT(""A11:A65536""))"]または、=COUNTA(A10:A65536)-1これはたぶん、削除した時に、エラーになってしまうからですね。すれば、書き加えずに済みます。17:24:06お礼ご親切にありがとうございます。丁寧に解説いただいたので、理解できました。Endで調べたら、データの痕跡があったようです。"=COUNTA(A11:A65536)"この数式についても、苦肉の策でしたが、ちゃんと回避方法があったんですね。=COUNTA(A10:A65536)-1を利用させていただきます。ありがとうございました。回答(4)ANo.3Wendy02だいぶ、VBAのコーディングは書きなれているようにお見受けしています。ご質問のコードは、独特の癖があるようです。製作の手順に問題があるようです。部分ですから、そこを中心にして必要な部分を付け足すようにしたほうがよいですね。良し悪しについては、金科玉条で文句をつける人がいますが、それについては指摘しません。使うなら、なるべくサブルーチンにしたほうがよいかもしれません。エラーが発生した時にしたほうがきれいです。以下の私のコードは、決してほめられたコードとは言えません。詰め込みすぎて、息苦しい気もします。するべきものではもありません。32は、実際は組み込み定数でよいです。長くなるので省いただけです。1).End(xlDown).Row下側に向かって探す方法ですと、65536まで探します。最後から上側に向かって探す方法だと、データの最後尾を探します。どちらにも欠点があります。EndRow2で、補完させました。フルにいれなければ、こんな問題は発生しませんが、Rows("11:65536").Deleteこういうコードから根拠にました。重なる部分のみを削除するということにしました。変数は、キャメル(らくだ)型にすると、小文字で入力すると、変化しますから、入力ミスが分かります。'変数はキャメル型が良いです。"データを削除しました。"データがありません。回答ありがとうございます。EndRowとEndRow2の2つを使う方法は、目からウロコでした!瞬時に処理ができましたし、理想の動きでした。成功したのは一番最初だけでした。二度目以降は、myRangeの行選択が前回までの最大行数を引き継いでいるようです。Excelを一度保存し、再起動しても、この部分は引き継いでいました。あれこれ試行錯誤してみましたが、解決しません。(0)通報するANo.2o_chi_chi検索を使えばよいのでは?ループで回せば1件づつの削除も可能です。回答ありがとうございます。ご教授いただいた方法でも、結果は同じでした。(0)通報するANo.1mu2011データ入力がない場合、空白チェックをA11:AF65536まで繰り返すからです。空白チェックが必要なのか不明、単純に削除処理だけのコードでよいと思いますが駄目なのでしょうか。回答ありがとうございます。ユーザーにとっての使いやすさを考慮すると、データの存在チェックは必要不可欠だと考えています。Excel2003です。ExcelVBAで散布図を書く方法を教えてください。Excel(2003)のVBAで、RangeオブジェクトのGroupメソッドについて質問です。EXCEL2007にて下記V...EXCELマクロで現在のセルの位置(行、列)を変数に入力したい。ExcelVBAでマクロを組んでいます。以前Excelで改行を行う方法を質問しました。現在、顧客毎の支払い明細をExcelで自動発行できるものを作っています。ExcelVBAでセル範囲を指定して別のセル範囲にコピーします。Reserved.掲載情報の著作権は提供元企業等に帰属します。