3/23/2017

Excel。マクロ004。バカに出来ない基本中の基本の範囲選択・セル参照【VBA】

Excel。マクロ004。バカに出来ない基本中の基本の範囲選択・セル参照

<VBA>


事務職でも知りたいと思っている人が多い、マクロ・VBA。

前回は、
オブジェクトやメソッドなどのカタカナについてご紹介しました。

そこで今回は、少し進みまして、
マクロ・VBAの基本中の基本であります、
【範囲選択】についてご紹介していきます。

慣れている人からすると、【範囲選択?】。

見りゃわかるじゃん。

となるのですが、そのような方ばかりではなく、
研修の時に意外とココあたりですでに、
トラブルになってしまう方が結構いらっしゃるんですよ。

なぜ、基本中の基本なのかというと、
Excelは、範囲選択をしないと始まらないからです。

要するにターゲットに対して指示するわけですから、
その範囲選択が出来ない、設定を忘れたとなると、ちゃんと動いてくれません。

実はココイラあたりに、
事務職系の方がマクロ・VBAが上達しきれないポイントが潜んでいるのですが…

では、まずはRangeプロパティからご紹介していきます。

【Rangeプロパティ】

オブジェクト.Range(“セル番号”)
という形なのですが、次のように記述します。
セルB3 ならRange(“B3”)
セルB3:C8ならRange(“B3:C8”)

iという変数と文字結合をあわせて、
Range(“B” & i)としたら、B列のi行目のセル

というように範囲選択することが出来ます。

初心者の方は、
Range(“b2”).Select
というような、一行だけでもいいので、記述してみましょう。

この親戚筋に、
Cellsというのがいるのですが、ごっちゃになる方いますので、
とりあえずは、Rangeだけでいいかと思います。

なぜ、ごっちゃになるのかというと、
Cellsの引数が、行,列という指定だからです。

例えば、
Cells(3,2) と記述すると、B3という意味になります。
なお、Cellsと記述するとシート上のすべてのセルを選択出来ます。

それでは、次のようにVBEで記述してみましょう。

Sub range002()
    Range("A5").Value = "スタッフ名"
    Range("b3:c4").Value = 200
    Cells(6, 1).Value = "内藤"
End Sub

そして実行すると、

まずは、簡単な3行ですが、
どのように動くのかがわかりませんと、
書いてある構文も、書くことも出来ません。

基本が大事です。

【行選択と列選択】

また行選択や列選択の場合には、

行選択は、Rows(行番号)
列選択は、Columns(列番号)

を使用します。

これは、ROW関数・COLUMN関数でお馴染みですので、
RowsとColumnsはわかりやすいかと思います。

記述は次のようになります。

Rows(2) は行2を選択
Rows(“2:4”)は、行2~行4を選択します。
ダブルコーテーションが付きますので、そこが注意ポイントになります。

Columns(2) は列2を選択つまり、B列を選択します。

これではわかりにくいので、
Columns(“b”) と記述してもOKですね。
Columns(“b:d”)と記述すれば、B列~D列が範囲選択出来ます。