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の使い方
第12回.変数宣言のDimとデータ型
第13回.定数宣言のConstと型宣言文字
第14回.文字の結合(&アンパサンド)と継続行(_アンダーバー)
第15回.四則演算と注釈(コメント)
第16回.繰り返し処理(For Next)


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

トランザクション処理|SQL入門(12月11日)
インデックスを作成して高速化(CREATE INDEX)|SQL入門(12月9日)
他のテーブルのデータで追加/更新/削除|SQL入門(12月8日)
データの削除(DELETE)|SQL入門(12月7日)
データの更新(UPDATE)|SQL入門(12月6日)
複数のSELECT結果を統合(UNION,UNION ALL)|SQL入門(12月5日)
テーブルを結合して取得(INNER JOIN,OUTER JOIN)|SQL入門(12月4日)
データベースの正規化とマスタの作成|SQL入門(12月3日)
データベースにおけるNULLの扱い方|SQL入門(12月2日)
オブジェクト変数とは何か|VBA技術解説(12月2日)


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

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



  • >
  • >
  • >
  • Rangeでのセルの指定方法

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


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



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