スポンサーリンク
Ctrl + Shift + ⬇ではもう一つ不便なケースが多い
Excelで、
- Ctrl + 方向キー
- Ctrl + Shift + 方向キー
のショートカットキーを使ってセル範囲の移動・選択を効率的に行う方法を、前の記事に書いた。
ただ少なくとも、下方向に連続した選択を行うショートカットキー<Ctrl + Shift + ⬇>については、使い勝手が悪い場面が多い。
たとえば上図では、タイトル行など除けば、表がExcelの4行目から開始されている。
そして、B列「返済日」については和暦じゃなくて西暦表示に直したいし、C列~G列についてはカンマ区切り数値の書式設定に直したいとする。
そうなると、1行目~3行目にまでそんな西暦表示とか数値書式とかの書式設定が及ぶと困る。
あくまでも1行目~3行目は避けて4行目から始まって、シートの一番下の行(Excel2010以降なら1048576行目だ)までを選んで書式設定したいのだ。
もし1行目~3行目を避ける必要がないのであれば、列を丸ごと選べばよいだけのことだが、それでは駄目だから困るのだ。
そしてこの場合、<Ctrl + Shift + ⬇キー>など既存のショートカットキーだと、1回では一番下の1048576行目までは選べない。
まして、途中に空白セルがあったりしたら尚更だ。次の動画のように、<Ctrl + Shift + ⬇キー>だと4回も押さないといけなくなる。
人にもよるだろうが、私などはこれが非常に煩わしく感じる機会が多い。
私は、表の開始行を3行目からにしたりすることが多いので、そうなると今回のように上部の行を避けて書式設定する必要があるのだ。
マクロのソースコード
そこで今回は、一気にExcelの一番下の行(1048576行目)まで選択範囲を広げるマクロを組んでみた。
といっても、お手軽でマクロの難易度じたいは低い方に入る。
知識がある人ならすぐ書けるだろう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
Sub selectToBottomLine() '現在選択行から、最下端の行までを選択する。 Dim rng As Range Dim startR As Long Dim startC As Long Dim endC As Long Set rng = Selection '選択範囲 startR = rng(1).Row '選択開始行 startC = rng(1).Column '選択開始列 endC = rng(rng.Count).Column '選択終了列 Range(Cells(startR, startC), Cells(Rows.Count, endC)).Select '一番下の行まで選択 End Sub |
この「selectToBottomLine」マクロをExcelの個人用マクロブックに組み込んで使うと良いだろう。
このソースコードでrng(1)とか書いているのが、一番最初のセルを選ぶということ。
そしてrng.Countというのがセル範囲rngのセル数であり、rng(rng.Count)というのが最終セルを選んでいるということになる。
最大行数Rows.Count
そしてソースコードのラストにある「Rows.Count」というのが、ExcelシートのRowsすなわち行の最大数を示す。
Excel2003までならこの最大行数は65536行だったが、Excel2007からは1048576行に激増した。
今後のバージョンアップでまた増えないとも限らないから、どれだけ増えても対応できるよう、「1048576」とか書かず「Rows.Count」と書くのがVBA使いの嗜みというものだ。
ちなみに最大列数についてはColumns.Countになる。
マクロを使って書式設定を実施する
では今回のマクロを使って、実際の書式設定をする。
セルの書式設定(数値や日付の書式設定とか、罫線とかも)をするのは、ショートカットキー<Ctrl+1>だ。これは必ず覚えておこう。
今回のマクロを使えば、セルが一番下の1048576行目まで選ばれるので、そこで<Ctrl+1>を押し、書式設定を行う。
下にその設定の動画を示す。途中でマウスカーソルがずっと上に行ってるのは、リボンに配置したマクロのアイコンをクリックしてる動きね。
スポンサーリンク