見出し画像

マクロルーティン#22(ショートカットキーの動作をマクロでする)

皆さんこんにちは。

前回の問題は「E列の最終行を取得するコードはどう書くでしょう」です。
◆解答
Range("E" & Rows.Count).End(xlUp).Row

★前回、A列の最終行を取得するときに書いたコードで、”A”を”E”に変えるだけですね。

前回は下から上にあがって最終行を取得しました。

◆上から下にさがって最終行を取得する書き方

では今回は、A1から下に向かって最終行を取得する書き方です。

◆書くコード
Range("A1").End(xlDown).Row

◆解説
ショートカットキー「Ctrl」+「」で取得するときと同様、A1から下に向かって最初に見つかった空白のセルの一つ上のセルの行を取得します。

画像1


◆使い方
自分で決めた変数(ここではsaigo)と先ほどのコードをイコールでつなげることによって、変数(saigo)に最終行番号(10)が入ります。
★最終行番号が入った変数(saigo)を使って次からのコードを書くことができます。→ 「For i = 2 to saigo」のように・・・

画像5

★「For ~ Next」のコードの書き方は マクロルーティン#20 をご覧ください。


画像2

このように下に向かって最終行を取得するときには、途中で空白のセルがあると、その手前で最終行と判断されてしまうので正しく最終行を取得できない場合があります。空白セルのない列で取得すると良いでしょう。


画像5

◆右から左に向かって最終列を取得する書き方

画像4

◆書くコード
Range("A1").End(xlToRight).Column

◆解説
A1から右に向かって最後の列番号
・ショートカットキー「Ctrl」+「」の動き
・列の番号を取得したいので、コードの最後は「.Column」です。
・最終列の列番号を取得します。上の図の場合は「5」を取得します。
(途中に空白セルがあるとその手前の列番号を取得しますので注意)

◆Point
最終行番号の取得の場合は「End(xlUp)」「End(xlDown)」ですが、
最終列番号の取得の場合は「End(xlToRight)」のように、太字の部分に「To」が入りますので気を付けましょう。


それでは、今回も最後までご覧いただきありがとうございました。
次回マクロルーティン#23で!

◆関連動画

【マクロルーティン13】変動する最終行を取得する


この記事が気に入ったらサポートをしてみませんか?