質問: excelvbaで最終行を誤認する問題の回避方法 いつもお世話になります。 activesheet.cells.specialcells(xllastcell).rowなどのコードで 最終行を取得しようとするとき、縦スクロールバーを下端まで下げた 時に空行を表示してしまうなどをすると正しく取得できなくなると いったことが起こります。現在では保存すれば修正されるみたい ですが、保存をせずに正しく取得できるようにするための方法は ありますでしょうか。 宜しくお願いいたします。
回答: activesheet.cells.specialcells(xllastcell).row の仕様上の問題です。まぁバグと言ってしまえばそうなんですが、最早そういう仕様という認識をされた方がよいかと。vbaのサンプルサイトでもその方法を推奨しているところはあまり見かけたことはありません。あったとしても下記のようにちゃんと注意点が書かれていたりします。 http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_030_100.html 対策としてはfaqサイトでサンプルとしてよく挙げられている方法を使うべきかと。 例えば下記とか。 activesheet.range("$a$65536").end(xlup).address