【Excel マクロ初心者】最終行・最終列まで取得・繰り返すマクロ

スポンサーリンク
エクセル
スポンサーリンク

どうも!そこらへんの社会人です!

今回は、最終行・最終列を取得もしくは、繰り返すマクロをご紹介していきたいと思います。

私は、よくIF文を使うのですが繰り返し数をわざわざ数えて適用していました・・・・
正直面倒です。繰り返し数が増えた場合はマクロも書き直さないといけないためです。

そんな煩わしさをやめるべく最終行・最終列の取得・もしくは繰り返すマクロをやってみました!

アドセンス 広告

最終行・最終列を取得するマクロ

最終行・最終列を取得するマクロはこちらになります!

マクロ      内容キーボード操作
xlUpセルが入力されている上まで移動 Ctrl + ↑
xlDownセルが入力されている下まで移動 Ctrl + ↓
xlToLeftセルが入力されている左まで移動 Ctrl + ←
xlToRightセルが入力されている右まで移動 Ctrl +→

実際にどのような操作になるかは、お使いのエクセルで実行してみると
分かりやすいと思います!!

最終行まで繰り返し

例として下記のように左の縦書きのものを横書きように転記していくことを考えます。

最終行の取得方法が分からない場合は、IF文で繰り返し数を記載して

Option Explicit

Sub 最終行の取得()

Dim i
Dim cnt

cnt = 7

For i = 3 To 6
iを3から6まで繰り返す

Cells(3, cnt).Value = Cells(i, 4).Value

cnt = cnt + 1

Next

End Sub

このように記載されると思います。
しかし、これでは繰り返し数が変わった場合面倒ですよね?
ということで最終行の取得をやってみると

Option Explicit

Sub 最終行の取得()

Dim i
Dim cnt

cnt = 7

‘For i = 3 To 6
For i = 3 To Cells(1000, 4).End(xlUp).Row
3からセル(1000行,4列)から「Ctrl + ↑」しとところまで繰り返す

Cells(3, cnt).Value = Cells(i, 4).Value

cnt = cnt + 1

Next

End Sub

実際に実行したらこのようになります。

最終列まで繰り返し

例として右の横書きのものを左の縦書きに転記していきたいと思います!

実際に書いたマクロはこちらになります。

Option Explicit

Sub 最終行の取得()

Dim i
Dim cnt

cnt = 3

‘For i = 7 To 10
For i = 7 To Cells(3, 1000).End(xlToLeft).Column
iを7からセル(3行,1000列)から「Ctrl + ←」しとところまで繰り返す

Cells(cnt, 4).Value = Cells(3, i).Value

cnt = cnt + 1

Next

End Sub

実際に実行するとこのようになります。

いかがだったでしょうか??
これでいちいち変数の値を入れ替えなくていいですね!!
今回の記事を参考に生産性UPを目指していきましょう!!!

コメント

タイトルとURLをコピーしました