Sponsored Links
こんにちは!Lenocoです。本日も見てくださりありがとうございます。
今回は基準となる行と列の求め方です!
Sponsored Links
Contents
基準となるセルの求め方
例えば以下のような表で、
「IDの列で、最終行をとりたいなぁ」
「タイトル行は何列まであるんだろう?」
となったとき、どのようにして取得しますか?
表の位置は基本的に変わらないんだから、C列の最終行、6行目の最終列を取得すればいいと思うかもしれません。
ただ、1行、1列でもずれてしまったらマクロがうまく動かない・・という状況を回避するため、
表が移動してしまったときにも柔軟に対応できるコードをご紹介します。
コード
Sub Main()
Dim r As Long
Dim c As Long
Dim temp1 As Long
Dim temp2 As Long
r = ThisWorkbook.ActiveSheet.Cells.Find("ID", LookIn:=xlValues, lookat:=xlWhole).Row
c = ThisWorkbook.ActiveSheet.Cells.Find("ID", LookIn:=xlValues, lookat:=xlWhole).Column
temp1 = ThisWorkbook.ActiveSheet.Cells(r, c).End(xlDown).Row
temp2 = ThisWorkbook.ActiveSheet.Cells(r, c).End(xlToRight).Column
MsgBox "最終行は" & temp1 & "行目です" _
& "最終列は" & temp2 & "列目です"
End Sub
コードの説明
行列番号、最終行、最終列番号を入れる変数を宣言します。
Findメソッドを使って、「ID」という文字列をシート内で検索し、
見つかったらそのセルの行番号、列番号を保存します。
「ID」と入ったセルを基準として、最終行、最終列番号を保存します。
Msgboxで、最終行、最終列番号を表示します。
補足
注意点があります。検索する文字(今回でいう「ID」)は、
シート上に1つだけであるのが望ましいです。
複数あった場合には、1つ目の文字列がヒットし、そこから最終行、最終列を求める処理になります。
さいごに
基準となるセルを求める方法は、いくつかあると思いますが、
今回は検索(Find)を使った方法をご紹介しました。
この方法であれば、たとえ行削除や行追加などがあっても
「ID」の文字を探してそこを基準とすることができます。
ぜひ使ってみてください!
Lenoco
Sponsored Links