エクセルVBA マクロで範囲選択。最終行を取得する。最終セル?最終列? | 昭和56年生まれが株FXとか原油とかに投資するブログ

昭和56年生まれが株FXとか原油とかに投資するブログ

気づけばもう40歳になろうとしている
20歳のころから大して変わっていないのに

マクロを記録するときは、Ctrl+↓でさくっと指定できる範囲も、その範囲を勝手に取得してやるとなると記録だけではなかなかいけなかったりする。

いけなくもないけれど。ちょっと制限が大きい。
(セルが途切れないなら、Ctrl+↓をうまく記録して使いまわせばできなくはない。と思う。)

ということで、勝手に範囲を取得するためにエクセルマクロで最終行というか最終セルというかそのあたりを取得したいと思う。
教えてGoogle先生!!
カタカタ。。

lastrow = Range("B" & Rows.Count).End(xlUp).Row

これで最終行が取得できる。
一番下から上に上がって当たったところを取得してんのかな。いや、しらんけど。

次は最終列を調べなきゃ

lastcolumn = Cells(ActiveCell.Row, 255).End(xlToLeft).Column

途中をColumns.Countにすればいけるのかと思ったけど、できなかったので趣向を変えて一番右(得食えsる2003でいうなら255列)から戻ってみました。
もっとスマートなのがあったらごめんなさい。
そして、エクセル2007以降を使っているハイテクな(?)みなさまは16000列くらいからさかのぼってくださいな。

そうそう、最終セルというからには、取得する行と列は必ずデータある見出しデータとかでやらなきゃモレが出てしまいますのでご注意ください。