【Excel マクロ VBA】RangeとCellsの関係

資料番号:SH44

マクロの記録で記録されるセルのアドレス情報はRangeで記録されます。
ところが、マクロではCellsを使用してセルを変数で指定できるようにすると活用の幅が大きく広がります。

今回は備忘録として、RangeとCellsの関係をまとめました。

セル選択をマクロ記録

セルの選択作業を例にRangeとCellsの関係について説明します。

「マクロの記録」を開始し

A3~A7セルだけ選択して「記録終了」します。

このとき、VBAには以下のプログラムが記録されます。

/* Range select program */
Sub select()
Range(“A3:A7”).Select
End Sub
/* Range select program End */

Cellsを使ってセル選択作業を書き換え

Range(“A3:A7”)のA3はCells(3,1)に相当します。
A列3行は3行1列と等価であるということです。
同様にA7はCells(7,1)に相当します。

A1やA2などのセルの番地を反対から読んでCellsに変換と覚えておくといいと思います。
これを元にプログラムを書き換えます。

/* Range select program */
Sub select_range()
Range(“A3:A7”).Select
End Sub
/* Range select program End */

/* Cells select program */
Sub select_cells()
Range(Cells(3, 1), Cells(7, 1)).Select
End Sub
/* Cells select program End */

プログラムRange select programとCells select programは等価で同じ作業をします。
プログラムをこのように書き換えることでセル番地情報に変数を使うことができるようになります。

Cells応用

以下のプログラムを実行すると
/* Cells select routine program */

Sub select_cells()
For i = 1 To 10
Range(Cells(3, i), Cells(7, i)).Select
Application.Wait [Now() + “0:00:00.1”] Next i

End Sub
/* Cells select program End */

A3~A7セルの選択→B3~B7セルの選択→・・・→J3~J7セルの選択まで連続で行うことができます。このプログラムはCellsに変数を使うことができるからこそ組めるものなのです。

※今回は連続で繰り返し作業をしていることを可視化するために
Application.Wait [Now() + “0:00:00.1”] を挟み込んで1ループごとに0.1秒待つという指示をしています。

shimakei8364

Recent Posts

  • PC/プログラミング

ブログ飯について ~ブロガーは稼げるのか?~

資料請求番号:PH ブログで収入を得るこ…

3年 ago
  • 写真/旅行

花の撮り方(可愛く撮る5つのコツを紹介)

資料請求番号:PH15 花を撮るためのレ…

4年 ago
  • English ver.

【Windows10】How to change file extension?

Display the file ext…

5年 ago
  • 写真/旅行

【観光 買い物】おすすめの秋葉原電気街の歩き方マップ

資料請求番号:PH83 秋葉原迷子卒業!…

5年 ago
  • 化学/物理

【どうやってはかる?】富士山の体積の計算方法

資料請求番号:TS31 富士山の体積をは…

5年 ago
  • 化学/物理

数学を使った美しい曲線のグラフィック

資料請求番号:TS11 エクセルを使って…

5年 ago