こんにちは!ぐーです。
いつもブログをご覧いただき、ありがとうございます!
今はこうして偉そうにITを語っていますが、実は元々、超アナログ人間でした。
「マクロ? 何それおいしいの?」状態だった私が、最初の頃に感動したのがこのRow(行)とColumn(列)でした。
たったこれだけを知っているだけで、Excelの操作性が一気にアップします。それではいきましょう!
1. Row(行)とColumn(列)の正体
中学生の数学で「X軸、Y軸」ってありましたよね?
あれを思い出すと頭が痛くなる…という方、安心してください。Excelはもっと単純です。
- Row(ロウ) = 行番号(横のライン)。左側の数字(1, 2, 3…)のこと。
- Column(カラム) = 列番号(縦のライン)。上のアルファベット(A, B, C…)を数字に直したもの。
例えば、C5セルなら?
- Row(行)は 5
- Column(列)は 3 (A=1, B=2, C=3 だから)
これだけです。この「当たり前の数字」をパソコン自身に数えさせることができると、世界が変わります。
2. なぜこの2つが必要なの?
事務作業では、毎日データ行数が変わりますよね。昨日は50件、今日は200件。
もしコードに「10行目まで処理する」と書いてしまったら、今日50件のデータが来たときに40件分放置されてしまいます。これは恐怖ですよね。
そこで、Rowの出番です。「データが入っている最後の行(Row)を教えて!」と命令できれば、件数が何件あってもミスなく処理できます。
「変動する数字を、自動で取得する」。これが脱・初心者の第一歩です。
3. 【コピペOK】実際に動かしてみよう
では、実際にVBAでどう書くのか見てみましょう。
以下のコードをコピーして、標準モジュールに貼り付けて実行してみてください。
パターンA:選択しているセルの場所を知る
Sub 今どこ()
' 選択しているセルの行番号と列番号を表示する
Dim gyou As Long ' 行番号を入れる箱
Dim retsu As Long ' 列番号を入れる箱
' ActiveCell(今選んでいるセル)の情報を取得
gyou = ActiveCell.Row
retsu = ActiveCell.Column
' メッセージで表示(これが出ると楽しいですよ!)
MsgBox "現在は " & gyou & " 行目の、" & retsu & " 列目です!"
End Sub
これを実行すると、例えばC5セルを選択していれば「現在は 5 行目の、3 列目です!」のようにとパソコンからメッセージが表示されます。
パターンB:データの最終行を自動で見つける(※重要)
さて、ここが本題です。
Sub 最終行を探せ()
' A列のデータが何行目まであるか調べる
Dim lastRow As Long
' Cells(Rows.Count, 1) は「A列の一番下の底」のこと
' End(xlUp) は「そこからググっと上に上がってデータにぶつかった所」
lastRow = Cells(Rows.Count, 1).End(xlUp).Row
MsgBox "データの最終行は " & lastRow & " 行目です!"
End Sub
このコードの良いところは、データが100行あろうが1万行あろうが、一瞬で正確な数字を返してくれることです。
もう、「今日のデータは何件だから…」と数える必要はありません。
RowとColumn。たったこれだけのテクニックですが、使えるようになったら「Excelの座標を縦横無尽に操れる人」になります。ぜひ身につけてください!
VBAを独学で学び、業務自動化に5年以上携わってきた私が、「本当に実務で役立った!」と感じた2冊を厳選して紹介します。 もう本選びで失敗したくない方は、よければ参考にしてみてください。

コメント