シートの1行目まで戻ります

 データの多いシートで作業していると、「ちょっと先頭行まで戻りたいな」と思うことってけっこうありますよね? そんなときは「 ctrl + ↑」で、その列のデータの入った最終行(空白の列なら先頭)まで戻ることができますけど、ちょうど右手がマウスにあるときなんて、案外じれったいですよね。しかもデータがたくさんある列が選択されている状態で先頭まで戻りたいとき、どこか空白の列を探してから「 ctrl + ↑」ですからね。ちょー面倒ですよね。

 「そのぐらい、なんだよ。せっかちだなー」と思われるかもしれませんけど、事務作業ではこういう操作が、年換算で何千回にも達するかもしれませんからねー。馬鹿にできませんよー。1クリックの節約をおろそかにしないほうがいいですよー。こばとの忠告を無視しないほうがいいですよー。というわけで、ぽちっとマクロフォームを押すだけで、先頭行を選択するマクロを作ってみましょう。セル A1 を選択するマクロも載せておきますので、どちらか好みのほうをお使いくださいな♪
 

先頭行の選択

 これはとっても簡単なマクロです。
 いきなり全コードを書いてしまいますけど、たったの 5 行です。

 Sub 先頭行の選択()
  Dim r As Integer
  r = Selection.Column
  Cells(1, r).Select
 End Sub

 Selection プロパティは選択されているセルを参照して Range オブジェクトを獲得します。「そのオブジェクトは何列目にあるのかな?」と調べるのが Colum プロパティです。そして「うん。○列目だね」と値を得て、整数型で宣言した r の中にぽいと放り込みますよ。それから Cells プロパティの引数で「 1 行目 r 列目ですよ」ということを教えて、そのセルまで移動します。これがプログラムの仕組みです。

Cells プロパティ

 もしかすると、Cells の引数指定でちょっと引っ掛かる人もいるかもしれません。普段のエクセルの操作では、

セル B5  ( B 列の 5 行)

というようにセルを呼んでいますよね。 Excel を使いこなしている人ほど、この感覚が頭に叩き込まれてしまっています。この感覚のズレがちょっと厄介なんです。 Excel 初心者さんなら、あまり問題ないですけどね。 Cells プロパティの引数は列と行の順番が逆です。しかもアルファベットを使わずに数字だけで指定します:

Cells(5,2)   ( B 列の 5 行)

 実は VBA にもワークシートと同じようにセルを指定できる Range プロパティというものがあります。たとえば

Range("B5").Select

と記述すれば、セル B5 を選択します。でも Range プロパティでは引数に変数を指定することができません。汎用性のあるマクロを組み立てるには Cells プロパティは欠かせないので、どうしても習得しておかなければならないのです。
 

セル A1 の選択

 セル A1 を選択するマクロはさらに簡単な記述になります。

 Sub 先頭行の選択()
  Cells(1, 1).Select
 End Sub

 このマクロでは Range プロパティを使っても良いのですが、どちらでもいいというときには Cells プロパティに統一しておいたほうがいいかもしれません。ただし Cells プロパティは1セルしか取得できないので、複数のセルを選択する場合には Range プロパティを使う必要がありますよ。

 今回のこばとちゃん講義はこのへんでおしまい。
 みなさんもマクロで1クリック節約を心がけてくださいな。

スポンサードリンク
末尾大型広告
末尾大型広告

コメントをどうぞ

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)