エクセルマクロ・VBA達人養成塾 小川です。
キューバ旅行記、その57です。
ビニャーレスで、馬に乗ってツアーです。
洞窟を出てくると、ヤモリくんがお迎えしてくれました。
もう、ムチャムチャラブリー☆
以下、一挙掲載します。ハチュウルイ苦手な人もいるかもしれないですが。。
今日は、12日に書いたブログ記事の続きを。
使っているエクセルでの全行数をバージョンに関係なく取得するには
この話をするとときどき出てくる質問かあります。
それは、
「だったら、表のいちばん上から、 [Ctrl] + [↓] に相当するような操作で見つかるセルの行番号を取得するというのでも良いんじゃないですか?」
というもの。
例えば、以下のような表があったとする。
|A |B |C |D |
-------------------------
1 | | | | |
-------------------------
2 |id|姓 |名 |数字|
-------------------------
3 |1 |神奈川|麻子 |454 |
-------------------------
4 |2 |門司 |夕起 |4140|
-------------------------
5 |3 |桜井 |千佳 |8626|
-------------------------
6 |4 |門司 |彰 |7905|
-------------------------
7 |5 |大津 |祥平 |3735|
-------------------------
8 |6 |静岡 |彰 |9620|
-------------------------
9 |7 |宇部 |敏久 |8714|
-------------------------
10|8 |能代 |夕起 |562 |
-------------------------
11|9 |宮崎 |奈津子 |9496|
-------------------------
12|10|米子 |美和 |3640|
-------------------------
ここで、セルA2からCtrlを押しながら[↓]を押すと、セルA12に到達します。
ところが。
エクセルはいい加減な表でもそれなりに動いてしまうので。
表を作った人間がいい加減だと、こんな表かもしれない。
|A |B |C |D |
-------------------------
1 | | | | |
-------------------------
2 |id|姓 |名 |数字|
-------------------------
3 |1 |神奈川|麻子 |454 |
-------------------------
4 |2 |門司 |夕起 |4140|
-------------------------
5 |3 |桜井 |千佳 |8626|
-------------------------
6 | |門司 |彰 |7905|
-------------------------
7 |5 |大津 |祥平 |3735|
-------------------------
8 |6 |静岡 |彰 |9620|
-------------------------
9 |7 |宇部 |敏久 |8714|
-------------------------
10|8 |能代 |夕起 |562 |
-------------------------
11|9 |宮崎 |奈津子 |9496|
-------------------------
12|10|米子 |美和 |3640|
-------------------------
4行目のID列が欠番です。
この状態でここで、セルA2からCtrlを押しながら[↓]を押すと、到達する先は、セルA5です。
前回紹介したような、一番下の行から[Ctrl] + [↑] , つまり、 .End(xlUp).Row という手法を使うことによって、こういう問題が生じるリスクをある程度回避することができます。