VBA入門
第9回.Rangeでのセルの指定方法

ExcelマクロVBAの基本と応用、エクセルVBAの初級・初心者向け解説
最終更新日:2019-06-25

第9回.Rangeでのセルの指定方法


前回までに出てきたRangeの使い方は、
Range("A1")
このように書きくことで1つのセルを指定する場合でした。


複数のセル範囲を指定する場合、
矩形のセル範囲、行全体、列全体、特殊なセル範囲
これらの指定方法を見ていきましょう。

複数のセル(矩形のセル範囲)

複数のセル(矩形のセル範囲、)を指定する場合のVBAの書き方です。
マウスでドラッグして複数のセルを選択しますよね、そのような範囲の場合です。

Range("A1:C5")
このように、:(コロン)で区切って、始点と終点を指定します。
次のように指定しても同じになります。
Range("A1","C5")
このように、,(カンマ)で区切って、始点と終点を指定します。
これで、A1セルからC5セルの四角いセル範囲(15個のセル)が指定できます。

つまり、

Range(始点セル, 終点セル)

このように指定します。

列全体

列全体を指定する場合のVBAの書き方です。
列見出しクリックして選択する範囲の場合です。

Range("A:A")
これで、A列全体になります。

Range("A:C") または Range("A:A","C:C")
これなら、A列からC列までの3列の指定になります。

行全体

行全体を指定する場合のVBAの書き方です。
行見出しをクリックして選択する範囲の場合です。

Range("1:1")
これで、1行目全体の指定になります。

Range("1:5") または Range("1:1","5:5")
これなら、1行から5行までの5行の指定になります。

名前定義のセル範囲

名前定義されているセルの場合のVBAの書き方です。
名前ボックスから名前を選択されるセル範囲の場合です。

Range("名前定義の名前")
これで指定可能です。

特殊な指定方法

飛び飛びのセル
飛び飛びのセルを指定する場合のVBAの書き方です。

Ctrlを押しながらマウスで選択していくような複数セルの指定です。

Range("A1,C5")
この指定では、A1セルとC5セル(2個のセル)のみ対象となります。
"(ダブルクォーテーション)の中で、,(カンマ)で区切って指定します。
この場合のセルの個数はいくつでも指定できます、ただし上限はあります。

交差セル
かなり特殊な指定方法として、
空白区切りの指定で、交差しているセルを指定できます。

Range("A:C 1:5")
これは、A:Cと1:5の交差している範囲、
つまり、A1~C5の矩形セル範囲になります。

この指定は、
Range("A1","C5")と同じになりますので、ほとんど使うことは無いでしょう。

マクロVBAで良く使う書き方

Rangeの書き方について、
後半にいろいろな書き方も紹介しましたが、マクロで通常使用するのは、

Range("A1")
Range("A1:C5")
Range("A:A")
Range("1:1")
Range("名前定義の名前")


上記のいずれかがほとんどになります。

そして、最後になりますが、
Rangeの中に書く、セル番地は必ず大文字で書いてください。
シートの関数は、小文字で書いたとしても、大文字に変換されますが、マクロでは変換されません。
やはり、シートの関数と同様の大文字表記が見やすいはずです。



同じテーマ「マクロVBA入門」の記事

第6回.とにかく書いてみよう(Sub,End Sub)
第7回.マクロを実行するには(F5)
第8回.セルに文字を入れるとは(Range,Value)
第9回.Rangeでのセルの指定方法
第10回.Range以外の指定方法(Cells,Rows,Columns)
第11回.RangeとCellsの使い方
第38回.セルに計算式を設定(Formula)
第12回.変数宣言のDimとデータ型
第13回.定数宣言のConstと型宣言文字
第14回.文字の結合(&アンパサンド)と継続行(_アンダーバー)
第15回.四則演算と注釈(コメント)


新着記事NEW ・・・新着記事一覧を見る

「VBAで導関数を求めよ」ツイッターのお題をやってみた|エクセル雑感(2月9日)
Property {Get|Let|Set} ステートメント|VBA入門(2月9日)
フィボナッチ数列(再帰呼び出し)|VBA技術解説(2月8日)
エクセルで連立方程式を解く(MINVERSE,MMULT)|エクセル雑感(2月7日)
スピルって速いの?スピルの速度について|VBA技術解説(2月4日)
スピルでVBAの何が変わったか|VBA技術解説(2月3日)
スピルについて|エクセル入門(2月3日)
エクセルで「もういくつ寝るとお正月」|エクセル雑感(1月29日)
VBAの少数以下の演算誤差について|VBA技術解説(1月29日)
VBAで写真の撮影日時や音楽動画の長さを取得する|VBA技術解説(1月23日)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.RangeとCellsの使い方|VBA入門
3.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
4.マクロって何?VBAって何?|VBA入門
5.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
6.変数宣言のDimとデータ型|VBA入門
7.繰り返し処理(For Next)|VBA入門
8.セルに文字を入れるとは(Range,Value)|VBA入門
9.空白セルを正しく判定する方法(IsEmpty,IsError,HasFormula)|VBA技術解説
10.ひらがな⇔カタカナの変換|エクセル基本操作




このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。



このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
本文下部へ