どうも!そこらへんの社会人です!
今回は、最終行・最終列を取得もしくは、繰り返すマクロをご紹介していきたいと思います。
私は、よく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を目指していきましょう!!!
コメント